// ------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
// Licensed under the MIT License (MIT). See License.txt in the repo root for license information.
// ------------------------------------------------------------



/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.00.0613 */
/* @@MIDL_FILE_HEADING(  ) */



/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */


#ifndef __fabrictypes_h__
#define __fabrictypes_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

/* header files for imported files */
#include "wtypes.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_fabrictypes_0000_0000 */
/* [local] */ 

#if ( _MSC_VER >= 1020 )
#pragma once
#endif


extern RPC_IF_HANDLE __MIDL_itf_fabrictypes_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_fabrictypes_0000_0000_v0_0_s_ifspec;


#ifndef __FabricTypeLib_LIBRARY_DEFINED__
#define __FabricTypeLib_LIBRARY_DEFINED__

/* library FabricTypeLib */
/* [version][helpstring][uuid] */ 


#pragma pack(push, 8)
typedef LONGLONG FABRIC_SEQUENCE_NUMBER;

typedef GUID FABRIC_PARTITION_ID;

typedef GUID FABRIC_UPLOAD_SESSION_ID;

typedef GUID FABRIC_TRANSACTION_ID;

typedef GUID FABRIC_TEST_COMMAND_OPERATION_ID;

typedef GUID FABRIC_UPGRADE_ORCHESTRATION_SERVICE_OPERATION_ID;

typedef LONGLONG FABRIC_INSTANCE_ID;

typedef LONGLONG FABRIC_REPLICA_ID;

typedef LONGLONG FABRIC_ATOMIC_GROUP_ID;

typedef LPCWSTR FABRIC_URI;

typedef ULONGLONG FABRIC_NODE_INSTANCE_ID;

typedef LONGLONG FABRIC_HOST_PROCESS_ID;

#define	FABRIC_INVALID_SEQUENCE_NUMBER	( -1 )

#define	FABRIC_AUTO_SEQUENCE_NUMBER	( 0 )

#define	FABRIC_INVALID_ATOMIC_GROUP_ID	( -1 )

#define	FABRIC_INVALID_OPERATION_INDEX	( 0xffffffff )

#define	FABRIC_IGNORE_SEQUENCE_NUMBER_CHECK	( 0 )

#define	FABRIC_INVALID_INSTANCE_ID	( -1 )

#define	FABRIC_INVALID_NODE_INSTANCE_ID	( 0 )

#define	FABRIC_INVALID_REPLICA_ID	( -1 )

#define	FABRIC_HEALTH_REPORT_INFINITE_TTL	( 0 )

#define	FABRIC_SYSTEM_APPLICATION	( L"fabric:/System" )

#define	FABRIC_INFINITE_DURATION	( 0xffffffff )

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("4e9e4fc0-39dd-4ac6-9a46-9b5ad0c47b6c") 
enum FABRIC_ERROR_CODE
    {
        FABRIC_E_FIRST_RESERVED_HRESULT	= 0x80071bbc,
        FABRIC_E_LAST_RESERVED_HRESULT	= 0x80071d4b,
        FABRIC_E_COMMUNICATION_ERROR	= FABRIC_E_FIRST_RESERVED_HRESULT,
        FABRIC_E_INVALID_ADDRESS	= ( FABRIC_E_COMMUNICATION_ERROR + 1 ) ,
        FABRIC_E_INVALID_NAME_URI	= ( FABRIC_E_INVALID_ADDRESS + 1 ) ,
        FABRIC_E_INVALID_PARTITION_KEY	= ( FABRIC_E_INVALID_NAME_URI + 1 ) ,
        FABRIC_E_NAME_ALREADY_EXISTS	= ( FABRIC_E_INVALID_PARTITION_KEY + 1 ) ,
        FABRIC_E_NAME_DOES_NOT_EXIST	= ( FABRIC_E_NAME_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_NAME_NOT_EMPTY	= ( FABRIC_E_NAME_DOES_NOT_EXIST + 1 ) ,
        FABRIC_E_NODE_NOT_FOUND	= ( FABRIC_E_NAME_NOT_EMPTY + 1 ) ,
        FABRIC_E_NODE_IS_UP	= ( FABRIC_E_NODE_NOT_FOUND + 1 ) ,
        FABRIC_E_NO_WRITE_QUORUM	= ( FABRIC_E_NODE_IS_UP + 1 ) ,
        FABRIC_E_NOT_PRIMARY	= ( FABRIC_E_NO_WRITE_QUORUM + 1 ) ,
        FABRIC_E_NOT_READY	= ( FABRIC_E_NOT_PRIMARY + 1 ) ,
        FABRIC_E_OPERATION_NOT_COMPLETE	= ( FABRIC_E_NOT_READY + 1 ) ,
        FABRIC_E_PROPERTY_DOES_NOT_EXIST	= ( FABRIC_E_OPERATION_NOT_COMPLETE + 1 ) ,
        FABRIC_E_RECONFIGURATION_PENDING	= ( FABRIC_E_PROPERTY_DOES_NOT_EXIST + 1 ) ,
        FABRIC_E_REPLICATION_QUEUE_FULL	= ( FABRIC_E_RECONFIGURATION_PENDING + 1 ) ,
        FABRIC_E_SERVICE_ALREADY_EXISTS	= ( FABRIC_E_REPLICATION_QUEUE_FULL + 1 ) ,
        FABRIC_E_SERVICE_DOES_NOT_EXIST	= ( FABRIC_E_SERVICE_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_SERVICE_OFFLINE	= ( FABRIC_E_SERVICE_DOES_NOT_EXIST + 1 ) ,
        FABRIC_E_SERVICE_METADATA_MISMATCH	= ( FABRIC_E_SERVICE_OFFLINE + 1 ) ,
        FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED	= ( FABRIC_E_SERVICE_METADATA_MISMATCH + 1 ) ,
        FABRIC_E_SERVICE_TYPE_ALREADY_REGISTERED	= ( FABRIC_E_SERVICE_AFFINITY_CHAIN_NOT_SUPPORTED + 1 ) ,
        FABRIC_E_SERVICE_TYPE_NOT_REGISTERED	= ( FABRIC_E_SERVICE_TYPE_ALREADY_REGISTERED + 1 ) ,
        FABRIC_E_VALUE_TOO_LARGE	= ( FABRIC_E_SERVICE_TYPE_NOT_REGISTERED + 1 ) ,
        FABRIC_E_VALUE_EMPTY	= ( FABRIC_E_VALUE_TOO_LARGE + 1 ) ,
        FABRIC_E_PROPERTY_CHECK_FAILED	= ( FABRIC_E_VALUE_EMPTY + 1 ) ,
        FABRIC_E_WRITE_CONFLICT	= ( FABRIC_E_PROPERTY_CHECK_FAILED + 1 ) ,
        FABRIC_E_ENUMERATION_COMPLETED	= ( FABRIC_E_WRITE_CONFLICT + 1 ) ,
        FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS	= ( FABRIC_E_ENUMERATION_COMPLETED + 1 ) ,
        FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS	= ( FABRIC_E_APPLICATION_TYPE_PROVISION_IN_PROGRESS + 1 ) ,
        FABRIC_E_APPLICATION_TYPE_NOT_FOUND	= ( FABRIC_E_APPLICATION_TYPE_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_APPLICATION_TYPE_IN_USE	= ( FABRIC_E_APPLICATION_TYPE_NOT_FOUND + 1 ) ,
        FABRIC_E_APPLICATION_ALREADY_EXISTS	= ( FABRIC_E_APPLICATION_TYPE_IN_USE + 1 ) ,
        FABRIC_E_APPLICATION_NOT_FOUND	= ( FABRIC_E_APPLICATION_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS	= ( FABRIC_E_APPLICATION_NOT_FOUND + 1 ) ,
        FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR	= ( FABRIC_E_APPLICATION_UPGRADE_IN_PROGRESS + 1 ) ,
        FABRIC_E_SERVICE_TYPE_NOT_FOUND	= ( FABRIC_E_APPLICATION_UPGRADE_VALIDATION_ERROR + 1 ) ,
        FABRIC_E_SERVICE_TYPE_MISMATCH	= ( FABRIC_E_SERVICE_TYPE_NOT_FOUND + 1 ) ,
        FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND	= ( FABRIC_E_SERVICE_TYPE_MISMATCH + 1 ) ,
        FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND	= ( FABRIC_E_SERVICE_TYPE_TEMPLATE_NOT_FOUND + 1 ) ,
        FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND	= ( FABRIC_E_CONFIGURATION_SECTION_NOT_FOUND + 1 ) ,
        FABRIC_E_INVALID_CONFIGURATION	= ( FABRIC_E_CONFIGURATION_PARAMETER_NOT_FOUND + 1 ) ,
        FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR	= ( FABRIC_E_INVALID_CONFIGURATION + 1 ) ,
        FABRIC_E_PARTITION_NOT_FOUND	= ( FABRIC_E_IMAGEBUILDER_VALIDATION_ERROR + 1 ) ,
        FABRIC_E_REPLICA_DOES_NOT_EXIST	= ( FABRIC_E_PARTITION_NOT_FOUND + 1 ) ,
        FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS	= ( FABRIC_E_REPLICA_DOES_NOT_EXIST + 1 ) ,
        FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST	= ( FABRIC_E_SERVICE_GROUP_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_PROCESS_DEACTIVATED	= ( FABRIC_E_SERVICE_GROUP_DOES_NOT_EXIST + 1 ) ,
        FABRIC_E_PROCESS_ABORTED	= ( FABRIC_E_PROCESS_DEACTIVATED + 1 ) ,
        FABRIC_E_UPGRADE_FAILED	= ( FABRIC_E_PROCESS_ABORTED + 1 ) ,
        FABRIC_E_INVALID_CREDENTIAL_TYPE	= ( FABRIC_E_UPGRADE_FAILED + 1 ) ,
        FABRIC_E_INVALID_X509_FIND_TYPE	= ( FABRIC_E_INVALID_CREDENTIAL_TYPE + 1 ) ,
        FABRIC_E_INVALID_X509_STORE_LOCATION	= ( FABRIC_E_INVALID_X509_FIND_TYPE + 1 ) ,
        FABRIC_E_INVALID_X509_STORE_NAME	= ( FABRIC_E_INVALID_X509_STORE_LOCATION + 1 ) ,
        FABRIC_E_INVALID_X509_THUMBPRINT	= ( FABRIC_E_INVALID_X509_STORE_NAME + 1 ) ,
        FABRIC_E_INVALID_PROTECTION_LEVEL	= ( FABRIC_E_INVALID_X509_THUMBPRINT + 1 ) ,
        FABRIC_E_INVALID_X509_STORE	= ( FABRIC_E_INVALID_PROTECTION_LEVEL + 1 ) ,
        FABRIC_E_INVALID_SUBJECT_NAME	= ( FABRIC_E_INVALID_X509_STORE + 1 ) ,
        FABRIC_E_INVALID_ALLOWED_COMMON_NAME_LIST	= ( FABRIC_E_INVALID_SUBJECT_NAME + 1 ) ,
        FABRIC_E_INVALID_CREDENTIALS	= ( FABRIC_E_INVALID_ALLOWED_COMMON_NAME_LIST + 1 ) ,
        FABRIC_E_DECRYPTION_FAILED	= ( FABRIC_E_INVALID_CREDENTIALS + 1 ) ,
        FABRIC_E_CONFIGURATION_PACKAGE_NOT_FOUND	= ( FABRIC_E_DECRYPTION_FAILED + 1 ) ,
        FABRIC_E_DATA_PACKAGE_NOT_FOUND	= ( FABRIC_E_CONFIGURATION_PACKAGE_NOT_FOUND + 1 ) ,
        FABRIC_E_CODE_PACKAGE_NOT_FOUND	= ( FABRIC_E_DATA_PACKAGE_NOT_FOUND + 1 ) ,
        FABRIC_E_SERVICE_ENDPOINT_RESOURCE_NOT_FOUND	= ( FABRIC_E_CODE_PACKAGE_NOT_FOUND + 1 ) ,
        FABRIC_E_INVALID_OPERATION	= ( FABRIC_E_SERVICE_ENDPOINT_RESOURCE_NOT_FOUND + 1 ) ,
        FABRIC_E_OBJECT_CLOSED	= ( FABRIC_E_INVALID_OPERATION + 1 ) ,
        FABRIC_E_TIMEOUT	= ( FABRIC_E_OBJECT_CLOSED + 1 ) ,
        FABRIC_E_FILE_NOT_FOUND	= ( FABRIC_E_TIMEOUT + 1 ) ,
        FABRIC_E_DIRECTORY_NOT_FOUND	= ( FABRIC_E_FILE_NOT_FOUND + 1 ) ,
        FABRIC_E_INVALID_DIRECTORY	= ( FABRIC_E_DIRECTORY_NOT_FOUND + 1 ) ,
        FABRIC_E_PATH_TOO_LONG	= ( FABRIC_E_INVALID_DIRECTORY + 1 ) ,
        FABRIC_E_IMAGESTORE_IOERROR	= ( FABRIC_E_PATH_TOO_LONG + 1 ) ,
        FABRIC_E_CORRUPTED_IMAGE_STORE_OBJECT_FOUND	= ( FABRIC_E_IMAGESTORE_IOERROR + 1 ) ,
        FABRIC_E_APPLICATION_NOT_UPGRADING	= ( FABRIC_E_CORRUPTED_IMAGE_STORE_OBJECT_FOUND + 1 ) ,
        FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION	= ( FABRIC_E_APPLICATION_NOT_UPGRADING + 1 ) ,
        FABRIC_E_IMAGEBUILDER_UNEXPECTED_ERROR	= ( FABRIC_E_APPLICATION_ALREADY_IN_TARGET_VERSION + 1 ) ,
        FABRIC_E_FABRIC_VERSION_NOT_FOUND	= ( FABRIC_E_IMAGEBUILDER_UNEXPECTED_ERROR + 1 ) ,
        FABRIC_E_FABRIC_VERSION_IN_USE	= ( FABRIC_E_FABRIC_VERSION_NOT_FOUND + 1 ) ,
        FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS	= ( FABRIC_E_FABRIC_VERSION_IN_USE + 1 ) ,
        FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION	= ( FABRIC_E_FABRIC_VERSION_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_FABRIC_NOT_UPGRADING	= ( FABRIC_E_FABRIC_ALREADY_IN_TARGET_VERSION + 1 ) ,
        FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS	= ( FABRIC_E_FABRIC_NOT_UPGRADING + 1 ) ,
        FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR	= ( FABRIC_E_FABRIC_UPGRADE_IN_PROGRESS + 1 ) ,
        FABRIC_E_HEALTH_MAX_REPORTS_REACHED	= ( FABRIC_E_FABRIC_UPGRADE_VALIDATION_ERROR + 1 ) ,
        FABRIC_E_HEALTH_STALE_REPORT	= ( FABRIC_E_HEALTH_MAX_REPORTS_REACHED + 1 ) ,
        FABRIC_E_KEY_TOO_LARGE	= ( FABRIC_E_HEALTH_STALE_REPORT + 1 ) ,
        FABRIC_E_KEY_NOT_FOUND	= ( FABRIC_E_KEY_TOO_LARGE + 1 ) ,
        FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED	= ( FABRIC_E_KEY_NOT_FOUND + 1 ) ,
        FABRIC_E_ENCRYPTION_FAILED	= ( FABRIC_E_SEQUENCE_NUMBER_CHECK_FAILED + 1 ) ,
        FABRIC_E_INVALID_ATOMIC_GROUP	= ( FABRIC_E_ENCRYPTION_FAILED + 1 ) ,
        FABRIC_E_HEALTH_ENTITY_NOT_FOUND	= ( FABRIC_E_INVALID_ATOMIC_GROUP + 1 ) ,
        FABRIC_E_SERVICE_MANIFEST_NOT_FOUND	= ( FABRIC_E_HEALTH_ENTITY_NOT_FOUND + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_TRANSPORT_STARTUP_FAILURE	= ( FABRIC_E_SERVICE_MANIFEST_NOT_FOUND + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_ALREADY_EXISTS	= ( FABRIC_E_RELIABLE_SESSION_TRANSPORT_STARTUP_FAILURE + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_CANNOT_CONNECT	= ( FABRIC_E_RELIABLE_SESSION_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_MANAGER_EXISTS	= ( FABRIC_E_RELIABLE_SESSION_CANNOT_CONNECT + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_REJECTED	= ( FABRIC_E_RELIABLE_SESSION_MANAGER_EXISTS + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_MANAGER_ALREADY_LISTENING	= ( FABRIC_E_RELIABLE_SESSION_REJECTED + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_MANAGER_NOT_FOUND	= ( FABRIC_E_RELIABLE_SESSION_MANAGER_ALREADY_LISTENING + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_MANAGER_NOT_LISTENING	= ( FABRIC_E_RELIABLE_SESSION_MANAGER_NOT_FOUND + 1 ) ,
        FABRIC_E_INVALID_SERVICE_TYPE	= ( FABRIC_E_RELIABLE_SESSION_MANAGER_NOT_LISTENING + 1 ) ,
        FABRIC_E_IMAGEBUILDER_TIMEOUT	= ( FABRIC_E_INVALID_SERVICE_TYPE + 1 ) ,
        FABRIC_E_IMAGEBUILDER_ACCESS_DENIED	= ( FABRIC_E_IMAGEBUILDER_TIMEOUT + 1 ) ,
        FABRIC_E_IMAGEBUILDER_INVALID_MSI_FILE	= ( FABRIC_E_IMAGEBUILDER_ACCESS_DENIED + 1 ) ,
        FABRIC_E_SERVICE_TOO_BUSY	= ( FABRIC_E_IMAGEBUILDER_INVALID_MSI_FILE + 1 ) ,
        FABRIC_E_TRANSACTION_NOT_ACTIVE	= ( FABRIC_E_SERVICE_TOO_BUSY + 1 ) ,
        FABRIC_E_REPAIR_TASK_ALREADY_EXISTS	= ( FABRIC_E_TRANSACTION_NOT_ACTIVE + 1 ) ,
        FABRIC_E_REPAIR_TASK_NOT_FOUND	= ( FABRIC_E_REPAIR_TASK_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_NOT_FOUND	= ( FABRIC_E_REPAIR_TASK_NOT_FOUND + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_QUEUE_EMPTY	= ( FABRIC_E_RELIABLE_SESSION_NOT_FOUND + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_QUOTA_EXCEEDED	= ( FABRIC_E_RELIABLE_SESSION_QUEUE_EMPTY + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_SERVICE_FAULTED	= ( FABRIC_E_RELIABLE_SESSION_QUOTA_EXCEEDED + 1 ) ,
        FABRIC_E_RELIABLE_SESSION_INVALID_TARGET_PARTITION	= ( FABRIC_E_RELIABLE_SESSION_SERVICE_FAULTED + 1 ) ,
        FABRIC_E_TRANSACTION_TOO_LARGE	= ( FABRIC_E_RELIABLE_SESSION_INVALID_TARGET_PARTITION + 1 ) ,
        FABRIC_E_REPLICATION_OPERATION_TOO_LARGE	= ( FABRIC_E_TRANSACTION_TOO_LARGE + 1 ) ,
        FABRIC_E_INSTANCE_ID_MISMATCH	= ( FABRIC_E_REPLICATION_OPERATION_TOO_LARGE + 1 ) ,
        FABRIC_E_UPGRADE_DOMAIN_ALREADY_COMPLETED	= ( FABRIC_E_INSTANCE_ID_MISMATCH + 1 ) ,
        FABRIC_E_NODE_HAS_NOT_STOPPED_YET	= ( FABRIC_E_UPGRADE_DOMAIN_ALREADY_COMPLETED + 1 ) ,
        FABRIC_E_INSUFFICIENT_CLUSTER_CAPACITY	= ( FABRIC_E_NODE_HAS_NOT_STOPPED_YET + 1 ) ,
        FABRIC_E_INVALID_PACKAGE_SHARING_POLICY	= ( FABRIC_E_INSUFFICIENT_CLUSTER_CAPACITY + 1 ) ,
        FABRIC_E_PREDEPLOYMENT_NOT_ALLOWED	= ( FABRIC_E_INVALID_PACKAGE_SHARING_POLICY + 1 ) ,
        FABRIC_E_INVALID_BACKUP_SETTING	= ( FABRIC_E_PREDEPLOYMENT_NOT_ALLOWED + 1 ) ,
        FABRIC_E_MISSING_FULL_BACKUP	= ( FABRIC_E_INVALID_BACKUP_SETTING + 1 ) ,
        FABRIC_E_BACKUP_IN_PROGRESS	= ( FABRIC_E_MISSING_FULL_BACKUP + 1 ) ,
        FABRIC_E_DUPLICATE_SERVICE_NOTIFICATION_FILTER_NAME	= ( FABRIC_E_BACKUP_IN_PROGRESS + 1 ) ,
        FABRIC_E_INVALID_REPLICA_OPERATION	= ( FABRIC_E_DUPLICATE_SERVICE_NOTIFICATION_FILTER_NAME + 1 ) ,
        FABRIC_E_INVALID_REPLICA_STATE	= ( FABRIC_E_INVALID_REPLICA_OPERATION + 1 ) ,
        FABRIC_E_LOADBALANCER_NOT_READY	= ( FABRIC_E_INVALID_REPLICA_STATE + 1 ) ,
        FABRIC_E_INVALID_PARTITION_OPERATION	= ( FABRIC_E_LOADBALANCER_NOT_READY + 1 ) ,
        FABRIC_E_PRIMARY_ALREADY_EXISTS	= ( FABRIC_E_INVALID_PARTITION_OPERATION + 1 ) ,
        FABRIC_E_SECONDARY_ALREADY_EXISTS	= ( FABRIC_E_PRIMARY_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_BACKUP_DIRECTORY_NOT_EMPTY	= ( FABRIC_E_SECONDARY_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_FORCE_NOT_SUPPORTED_FOR_REPLICA_OPERATION	= ( FABRIC_E_BACKUP_DIRECTORY_NOT_EMPTY + 1 ) ,
        FABRIC_E_ACQUIRE_FILE_LOCK_FAILED	= ( FABRIC_E_FORCE_NOT_SUPPORTED_FOR_REPLICA_OPERATION + 1 ) ,
        FABRIC_E_CONNECTION_DENIED	= ( FABRIC_E_ACQUIRE_FILE_LOCK_FAILED + 1 ) ,
        FABRIC_E_SERVER_AUTHENTICATION_FAILED	= ( FABRIC_E_CONNECTION_DENIED + 1 ) ,
        FABRIC_E_CONSTRAINT_KEY_UNDEFINED	= ( FABRIC_E_SERVER_AUTHENTICATION_FAILED + 1 ) ,
        FABRIC_E_MULTITHREADED_TRANSACTIONS_NOT_ALLOWED	= ( FABRIC_E_CONSTRAINT_KEY_UNDEFINED + 1 ) ,
        FABRIC_E_INVALID_X509_NAME_LIST	= ( FABRIC_E_MULTITHREADED_TRANSACTIONS_NOT_ALLOWED + 1 ) ,
        FABRIC_E_VERBOSE_FM_PLACEMENT_HEALTH_REPORTING_REQUIRED	= ( FABRIC_E_INVALID_X509_NAME_LIST + 1 ) ,
        FABRIC_E_GATEWAY_NOT_REACHABLE	= ( FABRIC_E_VERBOSE_FM_PLACEMENT_HEALTH_REPORTING_REQUIRED + 1 ) ,
        FABRIC_E_USER_ROLE_CLIENT_CERTIFICATE_NOT_CONFIGURED	= ( FABRIC_E_GATEWAY_NOT_REACHABLE + 1 ) ,
        FABRIC_E_TRANSACTION_ABORTED	= ( FABRIC_E_USER_ROLE_CLIENT_CERTIFICATE_NOT_CONFIGURED + 1 ) ,
        FABRIC_E_CANNOT_CONNECT	= ( FABRIC_E_TRANSACTION_ABORTED + 1 ) ,
        FABRIC_E_MESSAGE_TOO_LARGE	= ( FABRIC_E_CANNOT_CONNECT + 1 ) ,
        FABRIC_E_CONSTRAINT_NOT_SATISFIED	= ( FABRIC_E_MESSAGE_TOO_LARGE + 1 ) ,
        FABRIC_E_ENDPOINT_NOT_FOUND	= ( FABRIC_E_CONSTRAINT_NOT_SATISFIED + 1 ) ,
        FABRIC_E_APPLICATION_UPDATE_IN_PROGRESS	= ( FABRIC_E_ENDPOINT_NOT_FOUND + 1 ) ,
        FABRIC_E_DELETE_BACKUP_FILE_FAILED	= ( FABRIC_E_APPLICATION_UPDATE_IN_PROGRESS + 1 ) ,
        FABRIC_E_CONNECTION_CLOSED_BY_REMOTE_END	= ( FABRIC_E_DELETE_BACKUP_FILE_FAILED + 1 ) ,
        FABRIC_E_INVALID_TEST_COMMAND_STATE	= ( FABRIC_E_CONNECTION_CLOSED_BY_REMOTE_END + 1 ) ,
        FABRIC_E_TEST_COMMAND_OPERATION_ID_ALREADY_EXISTS	= ( FABRIC_E_INVALID_TEST_COMMAND_STATE + 1 ) ,
        FABRIC_E_CM_OPERATION_FAILED	= ( FABRIC_E_TEST_COMMAND_OPERATION_ID_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_IMAGEBUILDER_RESERVED_DIRECTORY_ERROR	= ( FABRIC_E_CM_OPERATION_FAILED + 1 ) ,
        FABRIC_E_CERTIFICATE_NOT_FOUND	= ( FABRIC_E_IMAGEBUILDER_RESERVED_DIRECTORY_ERROR + 1 ) ,
        FABRIC_E_CHAOS_ALREADY_RUNNING	= ( FABRIC_E_CERTIFICATE_NOT_FOUND + 1 ) ,
        FABRIC_E_FABRIC_DATA_ROOT_NOT_FOUND	= ( FABRIC_E_CHAOS_ALREADY_RUNNING + 1 ) ,
        FABRIC_E_INVALID_RESTORE_DATA	= ( FABRIC_E_FABRIC_DATA_ROOT_NOT_FOUND + 1 ) ,
        FABRIC_E_DUPLICATE_BACKUPS	= ( FABRIC_E_INVALID_RESTORE_DATA + 1 ) ,
        FABRIC_E_INVALID_BACKUP_CHAIN	= ( FABRIC_E_DUPLICATE_BACKUPS + 1 ) ,
        FABRIC_E_STOP_IN_PROGRESS	= ( FABRIC_E_INVALID_BACKUP_CHAIN + 1 ) ,
        FABRIC_E_ALREADY_STOPPED	= ( FABRIC_E_STOP_IN_PROGRESS + 1 ) ,
        FABRIC_E_NODE_IS_DOWN	= ( FABRIC_E_ALREADY_STOPPED + 1 ) ,
        FABRIC_E_NODE_TRANSITION_IN_PROGRESS	= ( FABRIC_E_NODE_IS_DOWN + 1 ) ,
        FABRIC_E_INVALID_BACKUP	= ( FABRIC_E_NODE_TRANSITION_IN_PROGRESS + 1 ) ,
        FABRIC_E_INVALID_INSTANCE_ID	= ( FABRIC_E_INVALID_BACKUP + 1 ) ,
        FABRIC_E_INVALID_DURATION	= ( FABRIC_E_INVALID_INSTANCE_ID + 1 ) ,
        FABRIC_E_RESTORE_SAFE_CHECK_FAILED	= ( FABRIC_E_INVALID_DURATION + 1 ) ,
        FABRIC_E_CONFIG_UPGRADE_FAILED	= ( FABRIC_E_RESTORE_SAFE_CHECK_FAILED + 1 ) ,
        FABRIC_E_UPLOAD_SESSION_RANGE_NOT_SATISFIABLE	= ( FABRIC_E_CONFIG_UPGRADE_FAILED + 1 ) ,
        FABRIC_E_UPLOAD_SESSION_ID_CONFLICT	= ( FABRIC_E_UPLOAD_SESSION_RANGE_NOT_SATISFIABLE + 1 ) ,
        FABRIC_E_INVALID_PARTITION_SELECTOR	= ( FABRIC_E_UPLOAD_SESSION_ID_CONFLICT + 1 ) ,
        FABRIC_E_INVALID_REPLICA_SELECTOR	= ( FABRIC_E_INVALID_PARTITION_SELECTOR + 1 ) ,
        FABRIC_E_DNS_SERVICE_NOT_FOUND	= ( FABRIC_E_INVALID_REPLICA_SELECTOR + 1 ) ,
        FABRIC_E_INVALID_DNS_NAME	= ( FABRIC_E_DNS_SERVICE_NOT_FOUND + 1 ) ,
        FABRIC_E_DNS_NAME_IN_USE	= ( FABRIC_E_INVALID_DNS_NAME + 1 ) ,
        FABRIC_E_COMPOSE_DEPLOYMENT_ALREADY_EXISTS	= ( FABRIC_E_DNS_NAME_IN_USE + 1 ) ,
        FABRIC_E_COMPOSE_DEPLOYMENT_NOT_FOUND	= ( FABRIC_E_COMPOSE_DEPLOYMENT_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_INVALID_FOR_STATEFUL_SERVICES	= ( FABRIC_E_COMPOSE_DEPLOYMENT_NOT_FOUND + 1 ) ,
        FABRIC_E_INVALID_FOR_STATELESS_SERVICES	= ( FABRIC_E_INVALID_FOR_STATEFUL_SERVICES + 1 ) ,
        FABRIC_E_ONLY_VALID_FOR_STATEFUL_PERSISTENT_SERVICES	= ( FABRIC_E_INVALID_FOR_STATELESS_SERVICES + 1 ) ,
        FABRIC_E_INVALID_UPLOAD_SESSION_ID	= ( FABRIC_E_ONLY_VALID_FOR_STATEFUL_PERSISTENT_SERVICES + 1 ) ,
        FABRIC_E_BACKUP_NOT_ENABLED	= ( FABRIC_E_INVALID_UPLOAD_SESSION_ID + 1 ) ,
        FABRIC_E_BACKUP_IS_ENABLED	= ( FABRIC_E_BACKUP_NOT_ENABLED + 1 ) ,
        FABRIC_E_BACKUP_POLICY_DOES_NOT_EXIST	= ( FABRIC_E_BACKUP_IS_ENABLED + 1 ) ,
        FABRIC_E_BACKUP_POLICY_ALREADY_EXISTS	= ( FABRIC_E_BACKUP_POLICY_DOES_NOT_EXIST + 1 ) ,
        FABRIC_E_RESTORE_IN_PROGRESS	= ( FABRIC_E_BACKUP_POLICY_ALREADY_EXISTS + 1 ) ,
        FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH	= ( FABRIC_E_RESTORE_IN_PROGRESS + 1 ) ,
        FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_ENABLED	= ( FABRIC_E_RESTORE_SOURCE_TARGET_PARTITION_MISMATCH + 1 ) ,
        FABRIC_E_CONTAINER_NOT_FOUND	= ( FABRIC_E_FAULT_ANALYSIS_SERVICE_NOT_ENABLED + 1 ) ,
        FABRIC_E_OBJECT_DISPOSED	= ( FABRIC_E_CONTAINER_NOT_FOUND + 1 ) ,
        FABRIC_E_NOT_READABLE	= ( FABRIC_E_OBJECT_DISPOSED + 1 ) ,
        FABRIC_E_BACKUPCOPIER_UNEXPECTED_ERROR	= ( FABRIC_E_NOT_READABLE + 1 ) ,
        FABRIC_E_BACKUPCOPIER_TIMEOUT	= ( FABRIC_E_BACKUPCOPIER_UNEXPECTED_ERROR + 1 ) ,
        FABRIC_E_BACKUPCOPIER_ACCESS_DENIED	= ( FABRIC_E_BACKUPCOPIER_TIMEOUT + 1 ) ,
        FABRIC_E_LAST_USED_HRESULT	= FABRIC_E_BACKUPCOPIER_ACCESS_DENIED
    } 	FABRIC_ERROR_CODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("e0ed62e6-087b-4ed8-97b7-9f17a90bea75") 
enum FABRIC_CLIENT_ROLE
    {
        FABRIC_CLIENT_ROLE_UNKNOWN	= 0,
        FABRIC_CLIENT_ROLE_USER	= 0x1,
        FABRIC_CLIENT_ROLE_ADMIN	= 0x2
    } 	FABRIC_CLIENT_ROLE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("ea32667b-dfde-4c26-93f5-97ad58fa8994") 
enum FABRIC_QUERY_SERVICE_STATUS
    {
        FABRIC_QUERY_SERVICE_STATUS_UNKNOWN	= 0,
        FABRIC_QUERY_SERVICE_STATUS_ACTIVE	= 0x1,
        FABRIC_QUERY_SERVICE_STATUS_UPGRADING	= 0x2,
        FABRIC_QUERY_SERVICE_STATUS_DELETING	= 0x3,
        FABRIC_QUERY_SERVICE_STATUS_CREATING	= 0x4,
        FABRIC_QUERY_SERVICE_STATUS_FAILED	= 0x5
    } 	FABRIC_QUERY_SERVICE_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("701a1afd-fb51-422f-8996-5ccc0dddb436") 
enum FABRIC_QUERY_NODE_STATUS
    {
        FABRIC_QUERY_NODE_STATUS_INVALID	= 0,
        FABRIC_QUERY_NODE_STATUS_UP	= 0x1,
        FABRIC_QUERY_NODE_STATUS_DOWN	= 0x2,
        FABRIC_QUERY_NODE_STATUS_ENABLING	= 0x3,
        FABRIC_QUERY_NODE_STATUS_DISABLING	= 0x4,
        FABRIC_QUERY_NODE_STATUS_DISABLED	= 0x5,
        FABRIC_QUERY_NODE_STATUS_UNKNOWN	= 0x6,
        FABRIC_QUERY_NODE_STATUS_REMOVED	= 0x7
    } 	FABRIC_QUERY_NODE_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("9d90db40-ada2-4b5c-bab2-a66b8c042e44") 
enum FABRIC_QUERY_NODE_STATUS_FILTER
    {
        FABRIC_QUERY_NODE_STATUS_FILTER_DEFAULT	= 0,
        FABRIC_QUERY_NODE_STATUS_FILTER_ALL	= 0xffff,
        FABRIC_QUERY_NODE_STATUS_FILTER_UP	= 0x1,
        FABRIC_QUERY_NODE_STATUS_FILTER_DOWN	= 0x2,
        FABRIC_QUERY_NODE_STATUS_FILTER_ENABLING	= 0x4,
        FABRIC_QUERY_NODE_STATUS_FILTER_DISABLING	= 0x8,
        FABRIC_QUERY_NODE_STATUS_FILTER_DISABLED	= 0x10,
        FABRIC_QUERY_NODE_STATUS_FILTER_UNKNOWN	= 0x20,
        FABRIC_QUERY_NODE_STATUS_FILTER_REMOVED	= 0x40
    } 	FABRIC_QUERY_NODE_STATUS_FILTER;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("f82137c5-ea24-4c1d-88be-8982290d5a2c") 
enum FABRIC_SERVICE_KIND
    {
        FABRIC_SERVICE_KIND_INVALID	= 0,
        FABRIC_SERVICE_KIND_STATELESS	= 0x1,
        FABRIC_SERVICE_KIND_STATEFUL	= 0x2
    } 	FABRIC_SERVICE_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("45f1fe1f-bb52-4d15-a87a-da237d68a331") 
enum FABRIC_SERVICE_PARTITION_KIND
    {
        FABRIC_SERVICE_PARTITION_KIND_INVALID	= 0,
        FABRIC_SERVICE_PARTITION_KIND_SINGLETON	= 0x1,
        FABRIC_SERVICE_PARTITION_KIND_INT64_RANGE	= 0x2,
        FABRIC_SERVICE_PARTITION_KIND_NAMED	= 0x3
    } 	FABRIC_SERVICE_PARTITION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("8ed618a3-a6d2-41a9-a54b-9e9c00ce5001") 
enum FABRIC_QUERY_SERVICE_PARTITION_STATUS
    {
        FABRIC_QUERY_SERVICE_PARTITION_STATUS_INVALID	= 0,
        FABRIC_QUERY_SERVICE_PARTITION_STATUS_READY	= 0x1,
        FABRIC_QUERY_SERVICE_PARTITION_STATUS_NOT_READY	= 0x2,
        FABRIC_QUERY_SERVICE_PARTITION_STATUS_IN_QUORUM_LOSS	= 0x3,
        FABRIC_QUERY_SERVICE_PARTITION_STATUS_RECONFIGURING	= 0x4,
        FABRIC_QUERY_SERVICE_PARTITION_STATUS_DELETING	= 0x5
    } 	FABRIC_QUERY_SERVICE_PARTITION_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("ac7c709e-e729-4911-ae47-91d878760988") 
enum FABRIC_QUERY_SERVICE_REPLICA_STATUS
    {
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_INVALID	= 0,
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_INBUILD	= 0x1,
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_STANDBY	= 0x2,
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_READY	= 0x3,
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_DOWN	= 0x4,
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_DROPPED	= 0x5
    } 	FABRIC_QUERY_SERVICE_REPLICA_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("588b449a-2860-4e72-beb0-9c30939b408b") 
enum FABRIC_QUERY_SERVICE_REPLICA_STATUS_FILTER
    {
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_FILTER_DEFAULT	= 0,
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_FILTER_ALL	= 0xffff,
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_FILTER_INBUILD	= 0x1,
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_FILTER_STANDBY	= 0x2,
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_FILTER_READY	= 0x4,
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_FILTER_DOWN	= 0x8,
        FABRIC_QUERY_SERVICE_REPLICA_STATUS_FILTER_DROPPED	= 0x10
    } 	FABRIC_QUERY_SERVICE_REPLICA_STATUS_FILTER;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("761AB8CD-A82C-4CA5-8BFC-42AF8173A196") 
enum FABRIC_QUERY_SERVICE_OPERATION_NAME
    {
        FABRIC_QUERY_SERVICE_OPERATION_NAME_INVALID	= 0,
        FABRIC_QUERY_SERVICE_OPERATION_NAME_NONE	= 0x1,
        FABRIC_QUERY_SERVICE_OPERATION_NAME_OPEN	= 0x2,
        FABRIC_QUERY_SERVICE_OPERATION_NAME_CHANGEROLE	= 0x4,
        FABRIC_QUERY_SERVICE_OPERATION_NAME_CLOSE	= 0x8,
        FABRIC_QUERY_SERVICE_OPERATION_NAME_ABORT	= 0x10
    } 	FABRIC_QUERY_SERVICE_OPERATION_NAME;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("51CD7EAC-A64D-4345-8011-D876BB167CB6") 
enum FABRIC_QUERY_REPLICATOR_OPERATION_NAME
    {
        FABRIC_QUERY_REPLICATOR_OPERATION_NAME_INVALID	= 0,
        FABRIC_QUERY_REPLICATOR_OPERATION_NAME_NONE	= 0x1,
        FABRIC_QUERY_REPLICATOR_OPERATION_NAME_OPEN	= 0x2,
        FABRIC_QUERY_REPLICATOR_OPERATION_NAME_CHANGEROLE	= 0x4,
        FABRIC_QUERY_REPLICATOR_OPERATION_NAME_UPDATEEPOCH	= 0x8,
        FABRIC_QUERY_REPLICATOR_OPERATION_NAME_CLOSE	= 0x10,
        FABRIC_QUERY_REPLICATOR_OPERATION_NAME_ABORT	= 0x20,
        FABRIC_QUERY_REPLICATOR_OPERATION_NAME_ONDATALOSS	= 0x40,
        FABRIC_QUERY_REPLICATOR_OPERATION_NAME_WAITFORCATCHUP	= 0x80,
        FABRIC_QUERY_REPLICATOR_OPERATION_NAME_BUILD	= 0x100
    } 	FABRIC_QUERY_REPLICATOR_OPERATION_NAME;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("ab285295-1508-43a3-9b4a-1419025b233d") 
enum FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND
    {
        FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND_INVALID	= 0,
        FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND_NONE	= 0x1,
        FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND_EXEHOST	= 0x2,
        FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND_DLLHOST	= 0x3,
        FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND_CONTAINERHOST	= 0x4
    } 	FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("66b42d79-ec04-4475-a0e5-3b3cd44bcee0") 
enum FABRIC_EXEHOST_WORKING_FOLDER
    {
        FABRIC_EXEHOST_WORKING_FOLDER_INVALID	= 0,
        FABRIC_EXEHOST_WORKING_FOLDER_WORK	= 0x1,
        FABRIC_EXEHOST_WORKING_FOLDER_CODE_PACKAGE	= 0x2,
        FABRIC_EXEHOST_WORKING_FOLDER_CODE_BASE	= 0x3
    } 	FABRIC_EXEHOST_WORKING_FOLDER;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("e604252a-6a47-4dfc-b0f4-f89be3f38431") 
enum FABRIC_DLLHOST_HOSTED_DLL_KIND
    {
        FABRIC_DLLHOST_HOSTED_DLL_KIND_INVALID	= 0,
        FABRIC_DLLHOST_HOSTED_DLL_KIND_UNMANAGED	= 0x1,
        FABRIC_DLLHOST_HOSTED_DLL_KIND_MANAGED	= 0x2
    } 	FABRIC_DLLHOST_HOSTED_DLL_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("ecccd66b-4fd5-44be-b472-17a9d46567e5") 
enum FABRIC_DLLHOST_ISOLATION_POLICY
    {
        FABRIC_DLLHOST_ISOLATION_POLICY_INVALID	= 0,
        FABRIC_DLLHOST_ISOLATION_POLICY_SHARED_DOMAIN	= 0x1,
        FABRIC_DLLHOST_ISOLATION_POLICY_DEDICATED_DOMAIN	= 0x2,
        FABRIC_DLLHOST_ISOLATION_POLICY_DEDICATED_PROCESS	= 0x3
    } 	FABRIC_DLLHOST_ISOLATION_POLICY;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("2eced350-b498-11e0-aff2-0800200c9a66") 
enum FABRIC_SECURITY_CREDENTIAL_KIND
    {
        FABRIC_SECURITY_CREDENTIAL_KIND_NONE	= 0,
        FABRIC_SECURITY_CREDENTIAL_KIND_X509	= 0x1,
        FABRIC_SECURITY_CREDENTIAL_KIND_WINDOWS	= 0x2,
        FABRIC_SECURITY_CREDENTIAL_KIND_CLAIMS	= 0x3,
        FABRIC_SECURITY_CREDENTIAL_KIND_X509_2	= 0x4,
        FABRIC_SECURITY_CREDENTIAL_KIND_INVALID	= 0xff
    } 	FABRIC_SECURITY_CREDENTIAL_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("4e15b6fd-a02d-401c-b711-76a2fb5b21ee") 
enum FABRIC_CLAIMS_RETRIEVAL_METADATA_KIND
    {
        FABRIC_CLAIMS_RETRIEVAL_METADATA_KIND_NONE	= 0,
        FABRIC_CLAIMS_RETRIEVAL_METADATA_KIND_AAD	= 0x1
    } 	FABRIC_CLAIMS_RETRIEVAL_METADATA_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("33447cf0-b498-11e0-aff2-0800200c9a66") 
enum FABRIC_PROTECTION_LEVEL
    {
        FABRIC_PROTECTION_LEVEL_NONE	= 0,
        FABRIC_PROTECTION_LEVEL_SIGN	= 0x1,
        FABRIC_PROTECTION_LEVEL_ENCRYPTANDSIGN	= 0x2
    } 	FABRIC_PROTECTION_LEVEL;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("a8de6110-d28e-11e0-9572-0800200c9a66") 
enum FABRIC_X509_STORE_LOCATION
    {
        FABRIC_X509_STORE_LOCATION_INVALID	= 0,
        FABRIC_X509_STORE_LOCATION_CURRENTUSER	= 0x1,
        FABRIC_X509_STORE_LOCATION_LOCALMACHINE	= 0x2
    } 	FABRIC_X509_STORE_LOCATION;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("928b8bd0-d28f-11e0-9572-0800200c9a66") 
enum FABRIC_X509_FIND_TYPE
    {
        FABRIC_X509_FIND_TYPE_FINDBYTHUMBPRINT	= 0,
        FABRIC_X509_FIND_TYPE_FINDBYSUBJECTNAME	= 0x1,
        FABRIC_X509_FIND_TYPE_FINDBYEXTENSION	= 0xc
    } 	FABRIC_X509_FIND_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("340e2da0-2a40-465b-8611-a9f1e1179169") 
enum FABRIC_SERVICE_LOAD_METRIC_WEIGHT
    {
        FABRIC_SERVICE_LOAD_METRIC_WEIGHT_ZERO	= 0,
        FABRIC_SERVICE_LOAD_METRIC_WEIGHT_LOW	= 0x1,
        FABRIC_SERVICE_LOAD_METRIC_WEIGHT_MEDIUM	= 0x2,
        FABRIC_SERVICE_LOAD_METRIC_WEIGHT_HIGH	= 0x3
    } 	FABRIC_SERVICE_LOAD_METRIC_WEIGHT;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("2a271c69-033e-4e5f-a343-6256da0f0b39") 
enum FABRIC_MOVE_COST
    {
        FABRIC_MOVE_COST_ZERO	= 0,
        FABRIC_MOVE_COST_LOW	= 0x1,
        FABRIC_MOVE_COST_MEDIUM	= 0x2,
        FABRIC_MOVE_COST_HIGH	= 0x3
    } 	FABRIC_MOVE_COST;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("6c1feaf2-24e6-4db4-a474-ab9e724a466c") 
enum FABRIC_SERVICE_PACKAGE_ACTIVATION_MODE
    {
        FABRIC_SERVICE_PACKAGE_ACTIVATION_MODE_SHARED_PROCESS	= 0,
        FABRIC_SERVICE_PACKAGE_ACTIVATION_MODE_EXCLUSIVE_PROCESS	= 0x1
    } 	FABRIC_SERVICE_PACKAGE_ACTIVATION_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("4a573e92-2d22-403d-a9da-a29522aff3dc") 
enum FABRIC_SERVICE_CORRELATION_SCHEME
    {
        FABRIC_SERVICE_CORRELATION_SCHEME_INVALID	= 0,
        FABRIC_SERVICE_CORRELATION_SCHEME_AFFINITY	= 0x1,
        FABRIC_SERVICE_CORRELATION_SCHEME_ALIGNED_AFFINITY	= 0x2,
        FABRIC_SERVICE_CORRELATION_SCHEME_NONALIGNED_AFFINITY	= 0x3
    } 	FABRIC_SERVICE_CORRELATION_SCHEME;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("41e76f51-9f38-4605-b7b6-ec98d7eb0aa2") 
enum FABRIC_SERVICE_PARTITION_ACCESS_STATUS
    {
        FABRIC_SERVICE_PARTITION_ACCESS_STATUS_INVALID	= 0,
        FABRIC_SERVICE_PARTITION_ACCESS_STATUS_GRANTED	= 0x1,
        FABRIC_SERVICE_PARTITION_ACCESS_STATUS_RECONFIGURATION_PENDING	= 0x2,
        FABRIC_SERVICE_PARTITION_ACCESS_STATUS_NOT_PRIMARY	= 0x3,
        FABRIC_SERVICE_PARTITION_ACCESS_STATUS_NO_WRITE_QUORUM	= 0x4
    } 	FABRIC_SERVICE_PARTITION_ACCESS_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("e70bda75-c7f0-4205-8f23-f02762062b07") 
enum FABRIC_REPLICA_ROLE
    {
        FABRIC_REPLICA_ROLE_UNKNOWN	= 0,
        FABRIC_REPLICA_ROLE_NONE	= 0x1,
        FABRIC_REPLICA_ROLE_PRIMARY	= 0x2,
        FABRIC_REPLICA_ROLE_IDLE_SECONDARY	= 0x3,
        FABRIC_REPLICA_ROLE_ACTIVE_SECONDARY	= 0x4
    } 	FABRIC_REPLICA_ROLE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("91e7036a-306a-4535-8cee-669109c9e495") 
enum FABRIC_REPLICA_OPEN_MODE
    {
        FABRIC_REPLICA_OPEN_MODE_INVALID	= 0,
        FABRIC_REPLICA_OPEN_MODE_NEW	= 0x1,
        FABRIC_REPLICA_OPEN_MODE_EXISTING	= 0x2
    } 	FABRIC_REPLICA_OPEN_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("4a673322-8c60-4192-abc9-07f8ceaa2f1c") 
enum FABRIC_REPLICA_STATUS
    {
        FABRIC_REPLICA_STATUS_INVALID	= 0,
        FABRIC_REPLICA_STATUS_DOWN	= 0x1,
        FABRIC_REPLICA_STATUS_UP	= 0x2
    } 	FABRIC_REPLICA_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("ad44562d-22e0-4fea-88f1-251f7fba2f06") 
enum FABRIC_OPERATION_TYPE
    {
        FABRIC_OPERATION_TYPE_INVALID	= 0,
        FABRIC_OPERATION_TYPE_NORMAL	= 0x1,
        FABRIC_OPERATION_TYPE_END_OF_STREAM	= 0x2,
        FABRIC_OPERATION_TYPE_CREATE_ATOMIC_GROUP	= 0x10,
        FABRIC_OPERATION_TYPE_ATOMIC_GROUP_OPERATION	= 0x20,
        FABRIC_OPERATION_TYPE_COMMIT_ATOMIC_GROUP	= 0x40,
        FABRIC_OPERATION_TYPE_ROLLBACK_ATOMIC_GROUP	= 0x80,
        FABRIC_OPERATION_TYPE_HAS_ATOMIC_GROUP_MASK	= 0xf0
    } 	FABRIC_OPERATION_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("ed2f0163-ef8e-4021-8975-fac2b340a97b") 
enum FABRIC_REPLICA_SET_QUORUM_MODE
    {
        FABRIC_REPLICA_SET_QUORUM_INVALID	= 0,
        FABRIC_REPLICA_SET_WRITE_QUORUM	= 0x1,
        FABRIC_REPLICA_SET_QUORUM_ALL	= 0x2
    } 	FABRIC_REPLICA_SET_QUORUM_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("64764AFA-5126-4306-A164-FABEAA4D967D") 
enum FABRIC_REPLICATOR_SETTINGS_FLAGS
    {
        FABRIC_REPLICATOR_SETTINGS_NONE	= 0,
        FABRIC_REPLICATOR_ADDRESS	= 0x1,
        FABRIC_REPLICATOR_SECURITY	= 0x2,
        FABRIC_REPLICATOR_RETRY_INTERVAL	= 0x4,
        FABRIC_REPLICATOR_BATCH_ACKNOWLEDGEMENT_INTERVAL	= 0x8,
        FABRIC_REPLICATOR_REQUIRE_SERVICE_ACK	= 0x10,
        FABRIC_REPLICATOR_REPLICATION_QUEUE_INITIAL_SIZE	= 0x20,
        FABRIC_REPLICATOR_REPLICATION_QUEUE_MAX_SIZE	= 0x40,
        FABRIC_REPLICATOR_COPY_QUEUE_INITIAL_SIZE	= 0x80,
        FABRIC_REPLICATOR_COPY_QUEUE_MAX_SIZE	= 0x100,
        FABRIC_REPLICATOR_REPLICATION_QUEUE_MAX_MEMORY_SIZE	= 0x200,
        FABRIC_REPLICATOR_SECONDARY_CLEAR_ACKNOWLEDGED_OPERATIONS	= 0x400,
        FABRIC_REPLICATOR_REPLICATION_MESSAGE_MAX_SIZE	= 0x800,
        FABRIC_REPLICATOR_USE_STREAMFAULTS_AND_ENDOFSTREAM_OPERATIONACK	= 0x1000,
        FABRIC_REPLICATOR_SECONDARY_REPLICATION_QUEUE_INITIAL_SIZE	= 0x2000,
        FABRIC_REPLICATOR_SECONDARY_REPLICATION_QUEUE_MAX_SIZE	= 0x4000,
        FABRIC_REPLICATOR_SECONDARY_REPLICATION_QUEUE_MAX_MEMORY_SIZE	= 0x8000,
        FABRIC_REPLICATOR_PRIMARY_REPLICATION_QUEUE_INITIAL_SIZE	= 0x10000,
        FABRIC_REPLICATOR_PRIMARY_REPLICATION_QUEUE_MAX_SIZE	= 0x20000,
        FABRIC_REPLICATOR_PRIMARY_REPLICATION_QUEUE_MAX_MEMORY_SIZE	= 0x40000,
        FABRIC_REPLICATOR_PRIMARY_WAIT_FOR_PENDING_QUORUMS_TIMEOUT	= 0x80000,
        FABRIC_REPLICATOR_LISTEN_ADDRESS	= 0x100000,
        FABRIC_REPLICATOR_PUBLISH_ADDRESS	= 0x200000
    } 	FABRIC_REPLICATOR_SETTINGS_FLAGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("5C6611DA-C443-4C4E-A1BB-061B9BD70D85") 
enum FABRIC_FAULT_TYPE
    {
        FABRIC_FAULT_TYPE_INVALID	= 0,
        FABRIC_FAULT_TYPE_PERMANENT	= 0x1,
        FABRIC_FAULT_TYPE_TRANSIENT	= 0x2
    } 	FABRIC_FAULT_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("E1873945-1DC9-44D8-BA96-7C981A909398") 
enum FABRIC_HEALTH_STATE
    {
        FABRIC_HEALTH_STATE_INVALID	= 0,
        FABRIC_HEALTH_STATE_OK	= 0x1,
        FABRIC_HEALTH_STATE_WARNING	= 0x2,
        FABRIC_HEALTH_STATE_ERROR	= 0x3,
        FABRIC_HEALTH_STATE_UNKNOWN	= 0xffff
    } 	FABRIC_HEALTH_STATE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("005BF16B-D603-44CE-96B5-3E33F117E0F1") 
enum FABRIC_HEALTH_REPORT_KIND
    {
        FABRIC_HEALTH_REPORT_KIND_INVALID	= 0,
        FABRIC_HEALTH_REPORT_KIND_STATEFUL_SERVICE_REPLICA	= 0x1,
        FABRIC_HEALTH_REPORT_KIND_STATELESS_SERVICE_INSTANCE	= 0x2,
        FABRIC_HEALTH_REPORT_KIND_PARTITION	= 0x3,
        FABRIC_HEALTH_REPORT_KIND_NODE	= 0x4,
        FABRIC_HEALTH_REPORT_KIND_SERVICE	= 0x5,
        FABRIC_HEALTH_REPORT_KIND_APPLICATION	= 0x6,
        FABRIC_HEALTH_REPORT_KIND_DEPLOYED_APPLICATION	= 0x7,
        FABRIC_HEALTH_REPORT_KIND_DEPLOYED_SERVICE_PACKAGE	= 0x8,
        FABRIC_HEALTH_REPORT_KIND_CLUSTER	= 0x9
    } 	FABRIC_HEALTH_REPORT_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("018988E7-8BBD-489F-BEAC-40C40E77B3C4") 
enum FABRIC_HEALTH_ENTITY_KIND
    {
        FABRIC_HEALTH_ENTITY_KIND_INVALID	= 0,
        FABRIC_HEALTH_ENTITY_KIND_NODE	= 0x1,
        FABRIC_HEALTH_ENTITY_KIND_PARTITION	= 0x2,
        FABRIC_HEALTH_ENTITY_KIND_SERVICE	= 0x3,
        FABRIC_HEALTH_ENTITY_KIND_APPLICATION	= 0x4,
        FABRIC_HEALTH_ENTITY_KIND_REPLICA	= 0x5,
        FABRIC_HEALTH_ENTITY_KIND_DEPLOYED_APPLICATION	= 0x6,
        FABRIC_HEALTH_ENTITY_KIND_DEPLOYED_SERVICE_PACKAGE	= 0x7,
        FABRIC_HEALTH_ENTITY_KIND_CLUSTER	= 0x8
    } 	FABRIC_HEALTH_ENTITY_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("fa7ffa7c-f55d-4d20-bfdc-7f2bcb07a0e5") 
enum FABRIC_HEALTH_EVALUATION_KIND
    {
        FABRIC_HEALTH_EVALUATION_KIND_INVALID	= 0,
        FABRIC_HEALTH_EVALUATION_KIND_EVENT	= 0x1,
        FABRIC_HEALTH_EVALUATION_KIND_REPLICAS	= 0x2,
        FABRIC_HEALTH_EVALUATION_KIND_PARTITIONS	= 0x3,
        FABRIC_HEALTH_EVALUATION_KIND_DEPLOYED_SERVICE_PACKAGES	= 0x4,
        FABRIC_HEALTH_EVALUATION_KIND_DEPLOYED_APPLICATIONS	= 0x5,
        FABRIC_HEALTH_EVALUATION_KIND_SERVICES	= 0x6,
        FABRIC_HEALTH_EVALUATION_KIND_NODES	= 0x7,
        FABRIC_HEALTH_EVALUATION_KIND_APPLICATIONS	= 0x8,
        FABRIC_HEALTH_EVALUATION_KIND_SYSTEM_APPLICATION	= 0x9,
        FABRIC_HEALTH_EVALUATION_KIND_UPGRADE_DOMAIN_DEPLOYED_APPLICATIONS	= 0xa,
        FABRIC_HEALTH_EVALUATION_KIND_UPGRADE_DOMAIN_NODES	= 0xb,
        FABRIC_HEALTH_EVALUATION_KIND_NODE	= 0xc,
        FABRIC_HEALTH_EVALUATION_KIND_REPLICA	= 0xd,
        FABRIC_HEALTH_EVALUATION_KIND_PARTITION	= 0xe,
        FABRIC_HEALTH_EVALUATION_KIND_SERVICE	= 0xf,
        FABRIC_HEALTH_EVALUATION_KIND_DEPLOYED_SERVICE_PACKAGE	= 0x10,
        FABRIC_HEALTH_EVALUATION_KIND_DEPLOYED_APPLICATION	= 0x11,
        FABRIC_HEALTH_EVALUATION_KIND_APPLICATION	= 0x12,
        FABRIC_HEALTH_EVALUATION_KIND_DELTA_NODES_CHECK	= 0x13,
        FABRIC_HEALTH_EVALUATION_KIND_UPGRADE_DOMAIN_DELTA_NODES_CHECK	= 0x14,
        FABRIC_HEALTH_EVALUATION_KIND_APPLICATION_TYPE_APPLICATIONS	= 0x15
    } 	FABRIC_HEALTH_EVALUATION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("0a87cabd-4b21-40ad-8a6d-3af3d538f1a9") 
enum FABRIC_PROPERTY_TYPE_ID
    {
        FABRIC_PROPERTY_TYPE_INVALID	= 0,
        FABRIC_PROPERTY_TYPE_BINARY	= 0x1,
        FABRIC_PROPERTY_TYPE_INT64	= 0x2,
        FABRIC_PROPERTY_TYPE_DOUBLE	= 0x3,
        FABRIC_PROPERTY_TYPE_WSTRING	= 0x4,
        FABRIC_PROPERTY_TYPE_GUID	= 0x5
    } 	FABRIC_PROPERTY_TYPE_ID;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("0bd919d2-5b30-496e-be32-96a9a42b523f") 
enum FABRIC_PROPERTY_BATCH_OPERATION_KIND
    {
        FABRIC_PROPERTY_BATCH_OPERATION_KIND_INVALID	= 0,
        FABRIC_PROPERTY_BATCH_OPERATION_KIND_PUT	= 0x1,
        FABRIC_PROPERTY_BATCH_OPERATION_KIND_GET	= 0x2,
        FABRIC_PROPERTY_BATCH_OPERATION_KIND_CHECK_EXISTS	= 0x3,
        FABRIC_PROPERTY_BATCH_OPERATION_KIND_CHECK_SEQUENCE	= 0x4,
        FABRIC_PROPERTY_BATCH_OPERATION_KIND_DELETE	= 0x5,
        FABRIC_PROPERTY_BATCH_OPERATION_KIND_PUT_CUSTOM	= 0x6,
        FABRIC_PROPERTY_BATCH_OPERATION_KIND_CHECK_VALUE	= 0x7
    } 	FABRIC_PROPERTY_BATCH_OPERATION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("3e64cc4c-aefe-4f8c-b36a-c23fefadae71") 
enum FABRIC_SERVICE_ENDPOINT_ROLE
    {
        FABRIC_SERVICE_ROLE_INVALID	= 0,
        FABRIC_SERVICE_ROLE_STATELESS	= 0x1,
        FABRIC_SERVICE_ROLE_STATEFUL_PRIMARY	= 0x2,
        FABRIC_SERVICE_ROLE_STATEFUL_SECONDARY	= 0x3
    } 	FABRIC_SERVICE_ENDPOINT_ROLE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("04727c23-0b95-43c5-bc9c-0ce616fce7fe") 
enum FABRIC_ENUMERATION_STATUS
    {
        FABRIC_ENUMERATION_INVALID	= 0,
        FABRIC_ENUMERATION_BEST_EFFORT_MORE_DATA	= 0x1,
        FABRIC_ENUMERATION_CONSISTENT_MORE_DATA	= 0x2,
        FABRIC_ENUMERATION_BEST_EFFORT_FINISHED	= 0x4,
        FABRIC_ENUMERATION_CONSISTENT_FINISHED	= 0x8,
        FABRIC_ENUMERATION_VALID_MASK	= 0xf,
        FABRIC_ENUMERATION_BEST_EFFORT_MASK	= 0x5,
        FABRIC_ENUMERATION_CONSISTENT_MASK	= 0xa,
        FABRIC_ENUMERATION_MORE_DATA_MASK	= 0x3,
        FABRIC_ENUMERATION_FINISHED_MASK	= 0xc
    } 	FABRIC_ENUMERATION_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("a83e49c4-8a27-42fa-9335-c0dfe1ce841c") 
enum FABRIC_PARTITION_KEY_TYPE
    {
        FABRIC_PARTITION_KEY_TYPE_INVALID	= 0,
        FABRIC_PARTITION_KEY_TYPE_NONE	= 0x1,
        FABRIC_PARTITION_KEY_TYPE_INT64	= 0x2,
        FABRIC_PARTITION_KEY_TYPE_STRING	= 0x3
    } 	FABRIC_PARTITION_KEY_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("bd69ada9-05a1-47fb-873b-a0d69a0ae774") 
enum FABRIC_PARTITION_SCHEME
    {
        FABRIC_PARTITION_SCHEME_INVALID	= 0,
        FABRIC_PARTITION_SCHEME_SINGLETON	= 0x1,
        FABRIC_PARTITION_SCHEME_UNIFORM_INT64_RANGE	= 0x2,
        FABRIC_PARTITION_SCHEME_NAMED	= 0x3
    } 	FABRIC_PARTITION_SCHEME;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("fc69c196-8f76-461c-9e5d-bfbe26ed91bc") 
enum FABRIC_SERVICE_DESCRIPTION_KIND
    {
        FABRIC_SERVICE_DESCRIPTION_KIND_INVALID	= 0,
        FABRIC_SERVICE_DESCRIPTION_KIND_STATELESS	= 0x1,
        FABRIC_SERVICE_DESCRIPTION_KIND_STATEFUL	= 0x2
    } 	FABRIC_SERVICE_DESCRIPTION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("33aca70a-7b83-4ba5-b780-3b34bee8c087") 
enum FABRIC_STATEFUL_SERVICE_FAILOVER_SETTINGS_FLAGS
    {
        FABRIC_STATEFUL_SERVICE_SETTINGS_NONE	= 0,
        FABRIC_STATEFUL_SERVICE_SETTINGS_REPLICA_RESTART_WAIT_DURATION	= 0x1,
        FABRIC_STATEFUL_SERVICE_SETTINGS_QUORUM_LOSS_WAIT_DURATION	= 0x2,
        FABRIC_STATEFUL_SERVICE_SETTINGS_STANDBY_REPLICA_KEEP_DURATION	= 0x4
    } 	FABRIC_STATEFUL_SERVICE_FAILOVER_SETTINGS_FLAGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("c8f464e5-bccc-4332-b371-f8acaa75387f") 
enum FABRIC_STATELESS_SERVICE_UPDATE_DESCRIPTION_FLAGS
    {
        FABRIC_STATELESS_SERVICE_NONE	= 0,
        FABRIC_STATELESS_SERVICE_INSTANCE_COUNT	= 0x1,
        FABRIC_STATELESS_SERVICE_PLACEMENT_CONSTRAINTS	= 0x2,
        FABRIC_STATELESS_SERVICE_POLICY_LIST	= 0x4,
        FABRIC_STATELESS_SERVICE_CORRELATIONS	= 0x8,
        FABRIC_STATELESS_SERVICE_METRICS	= 0x10,
        FABRIC_STATELESS_SERVICE_MOVE_COST	= 0x20
    } 	FABRIC_STATELESS_SERVICE_UPDATE_DESCRIPTION_FLAGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("ba531bba-a9c5-40bf-94ed-0aaf61f86add") 
enum FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_FLAGS
    {
        FABRIC_STATEFUL_SERVICE_NONE	= 0,
        FABRIC_STATEFUL_SERVICE_TARGET_REPLICA_SET_SIZE	= 0x1,
        FABRIC_STATEFUL_SERVICE_REPLICA_RESTART_WAIT_DURATION	= 0x2,
        FABRIC_STATEFUL_SERVICE_QUORUM_LOSS_WAIT_DURATION	= 0x4,
        FABRIC_STATEFUL_SERVICE_STANDBY_REPLICA_KEEP_DURATION	= 0x8,
        FABRIC_STATEFUL_SERVICE_MIN_REPLICA_SET_SIZE	= 0x10,
        FABRIC_STATEFUL_SERVICE_PLACEMENT_CONSTRAINTS	= 0x20,
        FABRIC_STATEFUL_SERVICE_POLICY_LIST	= 0x40,
        FABRIC_STATEFUL_SERVICE_CORRELATIONS	= 0x80,
        FABRIC_STATEFUL_SERVICE_METRICS	= 0x100,
        FABRIC_STATEFUL_SERVICE_MOVE_COST	= 0x200
    } 	FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_FLAGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("89fee5c1-2016-4e70-9902-d8957f0b8c73") 
enum FABRIC_SERVICE_NOTIFICATION_FILTER_FLAGS
    {
        FABRIC_SERVICE_NOTIFICATION_FILTER_FLAGS_NONE	= 0,
        FABRIC_SERVICE_NOTIFICATION_FILTER_FLAGS_NAME_PREFIX	= 0x1,
        FABRIC_SERVICE_NOTIFICATION_FILTER_FLAGS_PRIMARY_ONLY	= 0x2
    } 	FABRIC_SERVICE_NOTIFICATION_FILTER_FLAGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("03b0c355-beb2-47d6-8226-2f3e58cefc05") 
enum FABRIC_APPLICATION_UPGRADE_KIND
    {
        FABRIC_APPLICATION_UPGRADE_KIND_INVALID	= 0,
        FABRIC_APPLICATION_UPGRADE_KIND_ROLLING	= 0x1
    } 	FABRIC_APPLICATION_UPGRADE_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("9626e904-b6dd-4579-98db-8aecc683e0e2") 
enum FABRIC_UPGRADE_KIND
    {
        FABRIC_UPGRADE_KIND_INVALID	= 0,
        FABRIC_UPGRADE_KIND_ROLLING	= 0x1
    } 	FABRIC_UPGRADE_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("ddd3239e-b94a-4785-9fdb-c10412bdb0f6") 
enum FABRIC_ROLLING_UPGRADE_MODE
    {
        FABRIC_ROLLING_UPGRADE_MODE_INVALID	= 0,
        FABRIC_ROLLING_UPGRADE_MODE_UNMONITORED_AUTO	= 0x1,
        FABRIC_ROLLING_UPGRADE_MODE_UNMONITORED_MANUAL	= 0x2,
        FABRIC_ROLLING_UPGRADE_MODE_MONITORED	= 0x3
    } 	FABRIC_ROLLING_UPGRADE_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("54947352-4a9c-4a66-a58d-bf64c7e8ebe6") 
enum FABRIC_MONITORED_UPGRADE_FAILURE_ACTION
    {
        FABRIC_MONITORED_UPGRADE_FAILURE_ACTION_INVALID	= 0,
        FABRIC_MONITORED_UPGRADE_FAILURE_ACTION_ROLLBACK	= 0x1,
        FABRIC_MONITORED_UPGRADE_FAILURE_ACTION_MANUAL	= 0x2
    } 	FABRIC_MONITORED_UPGRADE_FAILURE_ACTION;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("2eaccf3b-ccde-49a5-bb2d-4223eed3cbda") 
enum FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS
    {
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_NONE	= 0,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_UPGRADE_MODE	= 0x1,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_FORCE_RESTART	= 0x2,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_REPLICA_SET_CHECK_TIMEOUT	= 0x4,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_FAILURE_ACTION	= 0x8,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_HEALTH_CHECK_WAIT	= 0x10,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_HEALTH_CHECK_STABLE	= 0x20,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_HEALTH_CHECK_RETRY	= 0x40,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_UPGRADE_TIMEOUT	= 0x80,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_UPGRADE_DOMAIN_TIMEOUT	= 0x100,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_HEALTH_POLICY	= 0x200,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_ENABLE_DELTAS	= 0x400,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_UPGRADE_HEALTH_POLICY	= 0x800,
        FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS_UPGRADE_APPLICATION_HEALTH_POLICY_MAP	= 0x1000
    } 	FABRIC_ROLLING_UPGRADE_UPDATE_FLAGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("052f0cf1-bff3-44be-92e2-92d2301fbdbd") 
enum FABRIC_APPLICATION_UPGRADE_STATE
    {
        FABRIC_APPLICATION_UPGRADE_STATE_INVALID	= 0,
        FABRIC_APPLICATION_UPGRADE_STATE_ROLLING_BACK_IN_PROGRESS	= 0x1,
        FABRIC_APPLICATION_UPGRADE_STATE_ROLLING_BACK_COMPLETED	= 0x2,
        FABRIC_APPLICATION_UPGRADE_STATE_ROLLING_FORWARD_PENDING	= 0x3,
        FABRIC_APPLICATION_UPGRADE_STATE_ROLLING_FORWARD_IN_PROGRESS	= 0x4,
        FABRIC_APPLICATION_UPGRADE_STATE_ROLLING_FORWARD_COMPLETED	= 0x5,
        FABRIC_APPLICATION_UPGRADE_STATE_FAILED	= 0x6
    } 	FABRIC_APPLICATION_UPGRADE_STATE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("f9b0a26f-2ad1-4655-9ea4-cd9096eab03a") 
enum FABRIC_UPGRADE_STATE
    {
        FABRIC_UPGRADE_STATE_INVALID	= 0,
        FABRIC_UPGRADE_STATE_ROLLING_BACK_IN_PROGRESS	= 0x1,
        FABRIC_UPGRADE_STATE_ROLLING_BACK_COMPLETED	= 0x2,
        FABRIC_UPGRADE_STATE_ROLLING_FORWARD_PENDING	= 0x3,
        FABRIC_UPGRADE_STATE_ROLLING_FORWARD_IN_PROGRESS	= 0x4,
        FABRIC_UPGRADE_STATE_ROLLING_FORWARD_COMPLETED	= 0x5,
        FABRIC_UPGRADE_STATE_FAILED	= 0x6
    } 	FABRIC_UPGRADE_STATE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("b7a89e60-1be4-448f-b8a5-3c6736776045") 
enum FABRIC_UPGRADE_DOMAIN_STATE
    {
        FABRIC_UPGRADE_DOMAIN_STATE_INVALID	= 0,
        FABRIC_UPGRADE_DOMAIN_STATE_PENDING	= 0x1,
        FABRIC_UPGRADE_DOMAIN_STATE_IN_PROGRESS	= 0x2,
        FABRIC_UPGRADE_DOMAIN_STATE_COMPLETED	= 0x3
    } 	FABRIC_UPGRADE_DOMAIN_STATE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("97413f36-4b1e-4e3d-9d97-d014097896af") 
enum FABRIC_UPGRADE_FAILURE_REASON
    {
        FABRIC_UPGRADE_FAILURE_REASON_NONE	= 0,
        FABRIC_UPGRADE_FAILURE_REASON_INTERRUPTED	= 0x1,
        FABRIC_UPGRADE_FAILURE_REASON_HEALTH_CHECK	= 0x2,
        FABRIC_UPGRADE_FAILURE_REASON_UPGRADE_DOMAIN_TIMEOUT	= 0x3,
        FABRIC_UPGRADE_FAILURE_REASON_OVERALL_UPGRADE_TIMEOUT	= 0x4,
        FABRIC_UPGRADE_FAILURE_REASON_PROCESSING_FAILURE	= 0x5
    } 	FABRIC_UPGRADE_FAILURE_REASON;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("07dadc06-1e89-4474-96cb-b3dd5195c012") 
enum FABRIC_LOCAL_STORE_KIND
    {
        FABRIC_LOCAL_STORE_KIND_INVALID	= 0,
        FABRIC_LOCAL_STORE_KIND_ESE	= 0x1
    } 	FABRIC_LOCAL_STORE_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("f81db66c-7c0f-475f-a07b-9e5d1d6b50b3") 
enum FABRIC_SERVICE_REPLICA_KIND
    {
        FABRIC_SERVICE_REPLICA_KIND_INVALID	= 0,
        FABRIC_SERVICE_REPLICA_KIND_KEY_VALUE_STORE	= 0x1
    } 	FABRIC_SERVICE_REPLICA_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("5a2a1139-d45c-41a6-92c6-d2daf0fb7f96") 
enum FABRIC_KEY_VALUE_STORE_NOTIFICATION_MODE
    {
        FABRIC_KEY_VALUE_STORE_NOTIFICATION_MODE_INVALID	= 0,
        FABRIC_KEY_VALUE_STORE_NOTIFICATION_MODE_NONE	= 0x1,
        FABRIC_KEY_VALUE_STORE_NOTIFICATION_MODE_NON_BLOCKING_QUORUM_ACKED	= 0x2,
        FABRIC_KEY_VALUE_STORE_NOTIFICATION_MODE_BLOCK_SECONDARY_ACK	= 0x3
    } 	FABRIC_KEY_VALUE_STORE_NOTIFICATION_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("9881dbc3-fec1-4fe4-a7cd-074f68dc805d") 
enum FABRIC_KEY_VALUE_STORE_FULL_COPY_MODE
    {
        FABRIC_KEY_VALUE_STORE_FULL_COPY_MODE_DEFAULT	= 0,
        FABRIC_KEY_VALUE_STORE_FULL_COPY_MODE_PHYSICAL	= 0x1,
        FABRIC_KEY_VALUE_STORE_FULL_COPY_MODE_LOGICAL	= 0x2,
        FABRIC_KEY_VALUE_STORE_FULL_COPY_MODE_REBUILD	= 0x3
    } 	FABRIC_KEY_VALUE_STORE_FULL_COPY_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("a9ede0b4-1602-44e7-be04-0d3ed9ce5595") 
enum FABRIC_TRANSACTION_ISOLATION_LEVEL
    {
        FABRIC_TRANSACTION_ISOLATION_LEVEL_DEFAULT	= 0,
        FABRIC_TRANSACTION_ISOLATION_LEVEL_READ_UNCOMMITTED	= 0x1,
        FABRIC_TRANSACTION_ISOLATION_LEVEL_READ_COMMITTED	= 0x2,
        FABRIC_TRANSACTION_ISOLATION_LEVEL_REPEATABLE_READ	= 0x3,
        FABRIC_TRANSACTION_ISOLATION_LEVEL_SNAPSHOT	= 0x4,
        FABRIC_TRANSACTION_ISOLATION_LEVEL_SERIALIZABLE	= 0x5
    } 	FABRIC_TRANSACTION_ISOLATION_LEVEL;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("3831e9cd-efa3-4368-adeb-c69338cbc4bd") 
enum FABRIC_NODE_DEACTIVATION_INTENT
    {
        FABRIC_NODE_DEACTIVATION_INTENT_INVALID	= 0,
        FABRIC_NODE_DEACTIVATION_INTENT_PAUSE	= 0x1,
        FABRIC_NODE_DEACTIVATION_INTENT_RESTART	= 0x2,
        FABRIC_NODE_DEACTIVATION_INTENT_REMOVE_DATA	= 0x3,
        FABRIC_NODE_DEACTIVATION_INTENT_REMOVE_NODE	= 0x4
    } 	FABRIC_NODE_DEACTIVATION_INTENT;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("7d2464bb-cefe-4f39-9a0b-fa3d8e1cc348") 
enum FABRIC_APPLICATION_TYPE_STATUS
    {
        FABRIC_APPLICATION_TYPE_STATUS_INVALID	= 0,
        FABRIC_APPLICATION_TYPE_STATUS_PROVISIONING	= 0x1,
        FABRIC_APPLICATION_TYPE_STATUS_AVAILABLE	= 0x2,
        FABRIC_APPLICATION_TYPE_STATUS_UNPROVISIONING	= 0x3,
        FABRIC_APPLICATION_TYPE_STATUS_FAILED	= 0x4
    } 	FABRIC_APPLICATION_TYPE_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("0b969b49-a278-4aa4-8de2-38a40fbcc701") 
enum FABRIC_APPLICATION_STATUS
    {
        FABRIC_APPLICATION_STATUS_INVALID	= 0,
        FABRIC_APPLICATION_STATUS_READY	= 0x1,
        FABRIC_APPLICATION_STATUS_UPGRADING	= 0x2,
        FABRIC_APPLICATION_STATUS_CREATING	= 0x3,
        FABRIC_APPLICATION_STATUS_DELETING	= 0x4,
        FABRIC_APPLICATION_STATUS_FAILED	= 0x5
    } 	FABRIC_APPLICATION_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("5753C082-9146-4451-9D0B-A6E036263804") 
enum FABRIC_APPLICATION_DEFINITION_KIND
    {
        FABRIC_APPLICATION_DEFINITION_KIND_INVALID	= 0xffff,
        FABRIC_APPLICATION_DEFINITION_KIND_SERVICE_FABRIC_APPLICATION_DESCRIPTION	= 0,
        FABRIC_APPLICATION_DEFINITION_KIND_COMPOSE	= 0x1
    } 	FABRIC_APPLICATION_DEFINITION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("DBB93A00-519F-42B9-B443-C7F5E7411AFC") 
enum FABRIC_APPLICATION_TYPE_DEFINITION_KIND
    {
        FABRIC_APPLICATION_TYPE_DEFINITION_KIND_INVALID	= 0,
        FABRIC_APPLICATION_TYPE_DEFINITION_KIND_SERVICE_FABRIC_APPLICATION_PACKAGE	= 0x1,
        FABRIC_APPLICATION_TYPE_DEFINITION_KIND_COMPOSE	= 0x2
    } 	FABRIC_APPLICATION_TYPE_DEFINITION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("96DC9EB4-3E7F-4D6F-81B7-00F2271B298D") 
enum FABRIC_APPLICATION_DEFINITION_KIND_FILTER
    {
        FABRIC_APPLICATION_DEFINITION_KIND_FILTER_DEFAULT	= 0,
        FABRIC_APPLICATION_DEFINITION_KIND_FILTER_ALL	= 0xffff,
        FABRIC_APPLICATION_DEFINITION_KIND_FILTER_SERVICE_FABRIC_APPLICATION_DESCRIPTION	= 0x1,
        FABRIC_APPLICATION_DEFINITION_KIND_FILTER_COMPOSE	= 0x2
    } 	FABRIC_APPLICATION_DEFINITION_KIND_FILTER;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("cd1bf90d-366d-45ba-bdad-7a765063ad88") 
enum FABRIC_APPLICATION_TYPE_DEFINITION_KIND_FILTER
    {
        FABRIC_APPLICATION_TYPE_DEFINITION_KIND_FILTER_DEFAULT	= 0,
        FABRIC_APPLICATION_TYPE_DEFINITION_KIND_FILTER_ALL	= 0xffff,
        FABRIC_APPLICATION_TYPE_DEFINITION_KIND_FILTER_SERVICE_FABRIC_APPLICATION_PACKAGE	= 0x1,
        FABRIC_APPLICATION_TYPE_DEFINITION_KIND_FILTER_COMPOSE	= 0x2
    } 	FABRIC_APPLICATION_TYPE_DEFINITION_KIND_FILTER;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("d140222b-7d8e-4690-8949-b4b0d423f992") 
enum FABRIC_SERVICE_TYPE_REGISTRATION_STATUS
    {
        FABRIC_SERVICE_TYPE_REGISTRATION_STATUS_INVALID	= 0,
        FABRIC_SERVICE_TYPE_REGISTRATION_STATUS_DISABLED	= 0x1,
        FABRIC_SERVICE_TYPE_REGISTRATION_STATUS_NOT_REGISTERED	= 0x2,
        FABRIC_SERVICE_TYPE_REGISTRATION_STATUS_REGISTERED	= 0x3
    } 	FABRIC_SERVICE_TYPE_REGISTRATION_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("6909C97D-E212-4F28-A615-3BE28A94C150") 
enum FABRIC_DEPLOYMENT_STATUS
    {
        FABRIC_DEPLOYMENT_STATUS_INVALID	= 0,
        FABRIC_DEPLOYMENT_STATUS_DOWNLOADING	= 0x1,
        FABRIC_DEPLOYMENT_STATUS_ACTIVATING	= 0x2,
        FABRIC_DEPLOYMENT_STATUS_ACTIVE	= 0x3,
        FABRIC_DEPLOYMENT_STATUS_UPGRADING	= 0x4,
        FABRIC_DEPLOYMENT_STATUS_DEACTIVATING	= 0x5
    } 	FABRIC_DEPLOYMENT_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("60C77017-A7F9-4D72-8FDC-C679EA4B71BD") 
enum FABRIC_HOST_TYPE
    {
        FABRIC_HOST_TYPE_INVALID	= 0,
        FABRIC_HOST_TYPE_EXE_HOST	= 0x1,
        FABRIC_HOST_TYPE_CONTAINER_HOST	= 0x2
    } 	FABRIC_HOST_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("E8ED3CF8-FC0D-4C3D-B825-F4687C5BE7E4") 
enum FABRIC_HOST_ISOLATION_MODE
    {
        FABRIC_HOST_ISOLATION_MODE_NONE	= 0,
        FABRIC_HOST_ISOLATION_MODE_PROCESS	= 0x1,
        FABRIC_HOST_ISOLATION_MODE_HYPER_V	= 0x2
    } 	FABRIC_HOST_ISOLATION_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("2B7DA3B7-28D2-49A0-BF3B-81BA6C1779F0") 
enum FABRIC_ENTRY_POINT_STATUS
    {
        FABRIC_ENTRY_POINT_STATUS_INVALID	= 0,
        FABRIC_ENTRY_POINT_STATUS_PENDING	= 0x1,
        FABRIC_ENTRY_POINT_STATUS_STARTING	= 0x2,
        FABRIC_ENTRY_POINT_STATUS_STARTED	= 0x3,
        FABRIC_ENTRY_POINT_STATUS_STOPPING	= 0x4,
        FABRIC_ENTRY_POINT_STATUS_STOPPED	= 0x5
    } 	FABRIC_ENTRY_POINT_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("cfaacaf5-18d9-4a73-907e-8dd5230a9e65") 
enum FABRIC_NODE_UPGRADE_PHASE
    {
        FABRIC_NODE_UPGRADE_PHASE_INVALID	= 0,
        FABRIC_NODE_UPGRADE_PHASE_PRE_UPGRADE_SAFETY_CHECK	= 0x1,
        FABRIC_NODE_UPGRADE_PHASE_UPGRADING	= 0x2,
        FABRIC_NODE_UPGRADE_PHASE_POST_UPGRADE_SAFETY_CHECK	= 0x3
    } 	FABRIC_NODE_UPGRADE_PHASE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("7f7a40fa-cda5-4b87-836c-6fee89ba0257") 
enum FABRIC_UPGRADE_SAFETY_CHECK_KIND
    {
        FABRIC_UPGRADE_SAFETY_CHECK_KIND_INVALID	= 0,
        FABRIC_UPGRADE_SEED_NODE_SAFETY_CHECK_KIND_ENSURE_QUORUM	= 0x1,
        FABRIC_UPGRADE_PARTITION_SAFETY_CHECK_KIND_ENSURE_QUORUM	= 0x2,
        FABRIC_UPGRADE_PARTITION_SAFETY_CHECK_KIND_WAIT_FOR_PRIMARY_PLACEMENT	= 0x3,
        FABRIC_UPGRADE_PARTITION_SAFETY_CHECK_KIND_WAIT_FOR_PRIMARY_SWAP	= 0x4,
        FABRIC_UPGRADE_PARTITION_SAFETY_CHECK_KIND_WAIT_FOR_RECONFIGURATION	= 0x5,
        FABRIC_UPGRADE_PARTITION_SAFETY_CHECK_KIND_WAIT_FOR_INBUILD_REPLICA	= 0x6,
        FABRIC_UPGRADE_PARTITION_SAFETY_CHECK_KIND_ENSURE_AVAILABILITY	= 0x7,
        FABRIC_UPGRADE_PARTITION_SAFETY_CHECK_KIND_WAIT_FOR_RESOURCE_AVAILABILITY	= 0x8
    } 	FABRIC_UPGRADE_SAFETY_CHECK_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("b524aec6-5410-4b0d-bb12-2c13a426437a") 
enum FABRIC_SAFETY_CHECK_KIND
    {
        FABRIC_SAFETY_CHECK_KIND_INVALID	= 0,
        FABRIC_SEED_NODE_SAFETY_CHECK_KIND_ENSURE_QUORUM	= 0x1,
        FABRIC_PARTITION_SAFETY_CHECK_KIND_ENSURE_QUORUM	= 0x2,
        FABRIC_PARTITION_SAFETY_CHECK_KIND_WAIT_FOR_PRIMARY_PLACEMENT	= 0x3,
        FABRIC_PARTITION_SAFETY_CHECK_KIND_WAIT_FOR_PRIMARY_SWAP	= 0x4,
        FABRIC_PARTITION_SAFETY_CHECK_KIND_WAIT_FOR_RECONFIGURATION	= 0x5,
        FABRIC_PARTITION_SAFETY_CHECK_KIND_WAIT_FOR_INBUILD_REPLICA	= 0x6,
        FABRIC_PARTITION_SAFETY_CHECK_KIND_ENSURE_AVAILABILITY	= 0x7
    } 	FABRIC_SAFETY_CHECK_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("C03ADCA5-C6A3-471A-96BB-504979F0E746") 
enum FABRIC_REPAIR_SCOPE_IDENTIFIER_KIND
    {
        FABRIC_REPAIR_SCOPE_IDENTIFIER_KIND_INVALID	= 0,
        FABRIC_REPAIR_SCOPE_IDENTIFIER_KIND_CLUSTER	= 0x1
    } 	FABRIC_REPAIR_SCOPE_IDENTIFIER_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("C2500D1F-0AC2-41C2-8F09-C8524EC5EF12") 
enum FABRIC_REPAIR_TARGET_KIND
    {
        FABRIC_REPAIR_TARGET_KIND_INVALID	= 0,
        FABRIC_REPAIR_TARGET_KIND_NODE	= 0x1
    } 	FABRIC_REPAIR_TARGET_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("54D53948-47DC-42C1-8AB6-FFF840F1AE24") 
enum FABRIC_RESTART_NODE_DESCRIPTION_KIND
    {
        FABRIC_RESTART_NODE_DESCRIPTION_KIND_INVALID	= 0,
        FABRIC_RESTART_NODE_DESCRIPTION_KIND_USING_NODE_NAME	= 0x1
    } 	FABRIC_RESTART_NODE_DESCRIPTION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("994FFE0B-635D-46E5-A7CD-5CD31476C9E1") 
enum FABRIC_START_NODE_DESCRIPTION_KIND
    {
        FABRIC_START_NODE_DESCRIPTION_KIND_INVALID	= 0,
        FABRIC_START_NODE_DESCRIPTION_KIND_USING_NODE_NAME	= 0x1
    } 	FABRIC_START_NODE_DESCRIPTION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("8F2DAD6E-FD68-49D6-80D8-1948F85C542F") 
enum FABRIC_STOP_NODE_DESCRIPTION_KIND
    {
        FABRIC_STOP_NODE_DESCRIPTION_KIND_INVALID	= 0,
        FABRIC_STOP_NODE_DESCRIPTION_KIND_USING_NODE_NAME	= 0x1
    } 	FABRIC_STOP_NODE_DESCRIPTION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("D6BDEAC7-04A0-4717-8F18-C330FD01113D") 
enum FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION_KIND
    {
        FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION_KIND_INVALID	= 0,
        FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION_KIND_USING_NODE_NAME	= 0x1
    } 	FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("675A6D45-F38C-46A2-B906-3FE2028ACCC2") 
enum FABRIC_REPAIR_TASK_STATE
    {
        FABRIC_REPAIR_TASK_STATE_INVALID	= 0,
        FABRIC_REPAIR_TASK_STATE_CREATED	= 0x1,
        FABRIC_REPAIR_TASK_STATE_CLAIMED	= 0x2,
        FABRIC_REPAIR_TASK_STATE_PREPARING	= 0x4,
        FABRIC_REPAIR_TASK_STATE_APPROVED	= 0x8,
        FABRIC_REPAIR_TASK_STATE_EXECUTING	= 0x10,
        FABRIC_REPAIR_TASK_STATE_RESTORING	= 0x20,
        FABRIC_REPAIR_TASK_STATE_COMPLETED	= 0x40
    } 	FABRIC_REPAIR_TASK_STATE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("643881FA-6132-4944-ADF8-A18CF3D1E5A9") 
enum FABRIC_REPAIR_TASK_HEALTH_CHECK_STATE
    {
        FABRIC_REPAIR_TASK_HEALTH_CHECK_STATE_NOT_STARTED	= 0,
        FABRIC_REPAIR_TASK_HEALTH_CHECK_STATE_IN_PROGRESS	= 0x1,
        FABRIC_REPAIR_TASK_HEALTH_CHECK_STATE_SUCCEEDED	= 0x2,
        FABRIC_REPAIR_TASK_HEALTH_CHECK_STATE_SKIPPED	= 0x3,
        FABRIC_REPAIR_TASK_HEALTH_CHECK_STATE_TIMEDOUT	= 0x4
    } 	FABRIC_REPAIR_TASK_HEALTH_CHECK_STATE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("A0C53D2C-58A6-437B-88BD-C5C9742CD22D") 
enum FABRIC_REPAIR_TASK_HEALTH_POLICY_UPDATE_SETTINGS_FLAGS
    {
        FABRIC_REPAIR_TASK_HEALTH_POLICY_UPDATE_SETTINGS_NONE	= 0,
        FABRIC_REPAIR_TASK_HEALTH_POLICY_UPDATE_SETTINGS_HONOR_PERFORM_PREPARING_HEALTH_CHECK	= 0x1,
        FABRIC_REPAIR_TASK_HEALTH_POLICY_UPDATE_SETTINGS_HONOR_PERFORM_RESTORING_HEALTH_CHECK	= 0x2
    } 	FABRIC_REPAIR_TASK_HEALTH_POLICY_UPDATE_SETTINGS_FLAGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("B4191C93-1175-4100-80F1-B7EDA561311C") 
enum FABRIC_REPAIR_TASK_STATE_FILTER
    {
        FABRIC_REPAIR_TASK_STATE_FILTER_DEFAULT	= 0,
        FABRIC_REPAIR_TASK_STATE_FILTER_CREATED	= FABRIC_REPAIR_TASK_STATE_CREATED,
        FABRIC_REPAIR_TASK_STATE_FILTER_CLAIMED	= FABRIC_REPAIR_TASK_STATE_CLAIMED,
        FABRIC_REPAIR_TASK_STATE_FILTER_PREPARING	= FABRIC_REPAIR_TASK_STATE_PREPARING,
        FABRIC_REPAIR_TASK_STATE_FILTER_APPROVED	= FABRIC_REPAIR_TASK_STATE_APPROVED,
        FABRIC_REPAIR_TASK_STATE_FILTER_EXECUTING	= FABRIC_REPAIR_TASK_STATE_EXECUTING,
        FABRIC_REPAIR_TASK_STATE_FILTER_RESTORING	= FABRIC_REPAIR_TASK_STATE_RESTORING,
        FABRIC_REPAIR_TASK_STATE_FILTER_COMPLETED	= FABRIC_REPAIR_TASK_STATE_COMPLETED,
        FABRIC_REPAIR_TASK_STATE_FILTER_READY_TO_EXECUTE	= ( FABRIC_REPAIR_TASK_STATE_FILTER_APPROVED | FABRIC_REPAIR_TASK_STATE_FILTER_EXECUTING ) ,
        FABRIC_REPAIR_TASK_STATE_FILTER_ACTIVE	= ( ( ( ( ( FABRIC_REPAIR_TASK_STATE_FILTER_CREATED | FABRIC_REPAIR_TASK_STATE_FILTER_CLAIMED )  | FABRIC_REPAIR_TASK_STATE_FILTER_PREPARING )  | FABRIC_REPAIR_TASK_STATE_FILTER_APPROVED )  | FABRIC_REPAIR_TASK_STATE_FILTER_EXECUTING )  | FABRIC_REPAIR_TASK_STATE_FILTER_RESTORING ) ,
        FABRIC_REPAIR_TASK_STATE_FILTER_ALL	= ( FABRIC_REPAIR_TASK_STATE_FILTER_ACTIVE | FABRIC_REPAIR_TASK_STATE_FILTER_COMPLETED ) 
    } 	FABRIC_REPAIR_TASK_STATE_FILTER;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("B35A5B6B-E2A6-4681-A41E-E560FAA9F1E2") 
enum FABRIC_REPAIR_TASK_FLAGS
    {
        FABRIC_REPAIR_TASK_FLAGS_NONE	= 0,
        FABRIC_REPAIR_TASK_FLAGS_CANCEL_REQUESTED	= 0x1,
        FABRIC_REPAIR_TASK_FLAGS_ABORT_REQUESTED	= 0x2,
        FABRIC_REPAIR_TASK_FLAGS_FORCED_APPROVAL	= 0x4,
        FABRIC_REPAIR_TASK_FLAGS_VALID_MASK	= ( ( ( FABRIC_REPAIR_TASK_FLAGS_NONE | FABRIC_REPAIR_TASK_FLAGS_CANCEL_REQUESTED )  | FABRIC_REPAIR_TASK_FLAGS_ABORT_REQUESTED )  | FABRIC_REPAIR_TASK_FLAGS_FORCED_APPROVAL ) 
    } 	FABRIC_REPAIR_TASK_FLAGS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("8ADBC921-D736-4FF5-8148-43FF4A47667C") 
enum FABRIC_REPAIR_IMPACT_KIND
    {
        FABRIC_REPAIR_IMPACT_KIND_INVALID	= 0,
        FABRIC_REPAIR_IMPACT_KIND_NODE	= 0x1
    } 	FABRIC_REPAIR_IMPACT_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("BD1702EC-FBB0-468F-8894-F22A84D9B5DE") 
enum FABRIC_REPAIR_NODE_IMPACT_LEVEL
    {
        FABRIC_REPAIR_NODE_IMPACT_LEVEL_INVALID	= 0,
        FABRIC_REPAIR_NODE_IMPACT_LEVEL_NONE	= 0x1,
        FABRIC_REPAIR_NODE_IMPACT_LEVEL_RESTART	= 0x2,
        FABRIC_REPAIR_NODE_IMPACT_LEVEL_REMOVE_DATA	= 0x3,
        FABRIC_REPAIR_NODE_IMPACT_LEVEL_REMOVE_NODE	= 0x4
    } 	FABRIC_REPAIR_NODE_IMPACT_LEVEL;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("244D5F35-B787-4F89-B71D-422ACC8F8105") 
enum FABRIC_REPAIR_TASK_RESULT
    {
        FABRIC_REPAIR_TASK_RESULT_INVALID	= 0,
        FABRIC_REPAIR_TASK_RESULT_SUCCEEDED	= 0x1,
        FABRIC_REPAIR_TASK_RESULT_CANCELLED	= 0x2,
        FABRIC_REPAIR_TASK_RESULT_INTERRUPTED	= 0x4,
        FABRIC_REPAIR_TASK_RESULT_FAILED	= 0x8,
        FABRIC_REPAIR_TASK_RESULT_PENDING	= 0x10
    } 	FABRIC_REPAIR_TASK_RESULT;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("9edf69ce-2e48-47d6-af01-4bb9122dba73") 
enum FABRIC_NODE_DEACTIVATION_STATUS
    {
        FABRIC_NODE_DEACTIVATION_STATUS_NONE	= 0,
        FABRIC_NODE_DEACTIVATION_STATUS_SAFETY_CHECK_IN_PROGRESS	= 0x1,
        FABRIC_NODE_DEACTIVATION_STATUS_SAFETY_CHECK_COMPLETE	= 0x2,
        FABRIC_NODE_DEACTIVATION_STATUS_COMPLETED	= 0x3
    } 	FABRIC_NODE_DEACTIVATION_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("58e6b778-aac4-4863-b09e-cefff2e8ca5e") 
enum FABRIC_NODE_DEACTIVATION_TASK_TYPE
    {
        FABRIC_NODE_DEACTIVATION_TASK_TYPE_INVALID	= 0,
        FABRIC_NODE_DEACTIVATION_TASK_TYPE_INFRASTRUCTURE	= 0x1,
        FABRIC_NODE_DEACTIVATION_TASK_TYPE_REPAIR	= 0x2,
        FABRIC_NODE_DEACTIVATION_TASK_TYPE_CLIENT	= 0x3
    } 	FABRIC_NODE_DEACTIVATION_TASK_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("8892f30f-588a-4845-9eab-c98c2f4b9e5b") 
enum FABRIC_PARTITION_SELECTOR_TYPE
    {
        FABRIC_PARTITION_SELECTOR_TYPE_NONE	= 0,
        FABRIC_PARTITION_SELECTOR_TYPE_SINGLETON	= 0x1,
        FABRIC_PARTITION_SELECTOR_TYPE_NAMED	= 0x2,
        FABRIC_PARTITION_SELECTOR_TYPE_UNIFORM_INT64	= 0x3,
        FABRIC_PARTITION_SELECTOR_TYPE_PARTITION_ID	= 0x4,
        FABRIC_PARTITION_SELECTOR_TYPE_RANDOM	= 0x5
    } 	FABRIC_PARTITION_SELECTOR_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("c2d3fad1-0991-4124-ac19-835ab6d74294") 
enum FABRIC_DATA_LOSS_MODE
    {
        FABRIC_DATA_LOSS_MODE_INVALID	= 0,
        FABRIC_DATA_LOSS_MODE_PARTIAL	= 0x1,
        FABRIC_DATA_LOSS_MODE_FULL	= 0x2
    } 	FABRIC_DATA_LOSS_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("59234fd5-009b-4e8e-a18c-77f4259ff01c") 
enum FABRIC_TEST_COMMAND_PROGRESS_STATE
    {
        FABRIC_TEST_COMMAND_PROGRESS_STATE_INVALID	= 0,
        FABRIC_TEST_COMMAND_PROGRESS_STATE_RUNNING	= 0x1,
        FABRIC_TEST_COMMAND_PROGRESS_STATE_ROLLING_BACK	= 0x2,
        FABRIC_TEST_COMMAND_PROGRESS_STATE_COMPLETED	= 0x3,
        FABRIC_TEST_COMMAND_PROGRESS_STATE_FAULTED	= 0x4,
        FABRIC_TEST_COMMAND_PROGRESS_STATE_CANCELLED	= 0x5,
        FABRIC_TEST_COMMAND_PROGRESS_STATE_FORCE_CANCELLED	= 0x6
    } 	FABRIC_TEST_COMMAND_PROGRESS_STATE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("10ad1911-2ae2-4d80-af5e-59e54076b885") 
enum FABRIC_QUORUM_LOSS_MODE
    {
        FABRIC_QUORUM_LOSS_MODE_INVALID	= 0,
        FABRIC_QUORUM_LOSS_MODE_QUORUM_REPLICAS	= 0x1,
        FABRIC_QUORUM_LOSS_MODE_ALL_REPLICAS	= 0x2
    } 	FABRIC_QUORUM_LOSS_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("e48fa851-3138-41fa-b46f-6dedad1a86f7") 
enum FABRIC_RESTART_PARTITION_MODE
    {
        FABRIC_RESTART_PARTITION_MODE_INVALID	= 0,
        FABRIC_RESTART_PARTITION_MODE_ALL_REPLICAS_OR_INSTANCES	= 0x1,
        FABRIC_RESTART_PARTITION_MODE_ONLY_ACTIVE_SECONDARIES	= 0x2
    } 	FABRIC_RESTART_PARTITION_MODE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("2332816F-CCD1-45E0-A963-FA936B25124E") 
enum FABRIC_MOVE_PRIMARY_DESCRIPTION_KIND
    {
        FABRIC_MOVE_PRIMARY_DESCRIPTION_KIND_INVALID	= 0,
        FABRIC_MOVE_PRIMARY_DESCRIPTION_KIND_USING_NODE_NAME	= 0x1,
        FABRIC_MOVE_PRIMARY_DESCRIPTION_KIND_USING_REPLICA_SELECTOR	= 0x2
    } 	FABRIC_MOVE_PRIMARY_DESCRIPTION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("C095D7A6-F47E-4278-8CB0-397D8F3E0723") 
enum FABRIC_MOVE_SECONDARY_DESCRIPTION_KIND
    {
        FABRIC_MOVE_SECONDARY_DESCRIPTION_KIND_INVALID	= 0,
        FABRIC_MOVE_SECONDARY_DESCRIPTION_KIND_USING_NODE_NAME	= 0x1,
        FABRIC_MOVE_SECONDARY_DESCRIPTION_KIND_USING_REPLICA_SELECTOR	= 0x2
    } 	FABRIC_MOVE_SECONDARY_DESCRIPTION_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("62f706f7-d5d4-48f9-9b0d-a7e6fb4ac956") 
enum FABRIC_NODE_TRANSITION_TYPE
    {
        FABRIC_NODE_TRANSITION_TYPE_INVALID	= 0,
        FABRIC_NODE_TRANSITION_TYPE_START	= 0x1,
        FABRIC_NODE_TRANSITION_TYPE_STOP	= 0x2
    } 	FABRIC_NODE_TRANSITION_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("21cfaf87-4292-4d31-8a55-78f4be675caf") 
enum FABRIC_RECONFIGURATION_PHASE
    {
        FABRIC_RECONFIGURATION_PHASE_INVALID	= 0,
        FABRIC_RECONFIGURATION_PHASE_NONE	= 0x1,
        FABRIC_RECONFIGURATION_PHASE_ZERO	= 0x2,
        FABRIC_RECONFIGURATION_PHASE_ONE	= 0x3,
        FABRIC_RECONFIGURATION_PHASE_TWO	= 0x4,
        FABRIC_RECONFIGURATION_PHASE_THREE	= 0x5,
        FABRIC_RECONFIGURATION_PHASE_FOUR	= 0x6,
        FABRIC_RECONFIGURATION_ABORT_PHASE_ZERO	= 0x7
    } 	FABRIC_RECONFIGURATION_PHASE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("d7c43265-42f6-42f4-8a71-d692d29daf7f") 
enum FABRIC_RECONFIGURATION_TYPE
    {
        FABRIC_RECONFIGURATION_TYPE_INVALID	= 0,
        FABRIC_RECONFIGURATION_TYPE_SWAPPRIMARY	= 0x1,
        FABRIC_RECONFIGURATION_TYPE_FAILOVER	= 0x2,
        FABRIC_RECONFIGURATION_TYPE_OTHER	= 0x3,
        FABRIC_RECONFIGURATION_TYPE_NONE	= 0x4
    } 	FABRIC_RECONFIGURATION_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("D413EB81-145E-4825-BE02-BC74DF103F61") 
enum FABRIC_CHAOS_STATUS
    {
        FABRIC_CHAOS_STATUS_INVALID	= 0,
        FABRIC_CHAOS_STATUS_RUNNING	= 0x1,
        FABRIC_CHAOS_STATUS_STOPPED	= 0x2
    } 	FABRIC_CHAOS_STATUS;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("583953EF-0968-4917-A62E-F65E9657C0FF") 
enum FABRIC_CHAOS_EVENT_KIND
    {
        FABRIC_CHAOS_EVENT_KIND_INVALID	= 0,
        FABRIC_CHAOS_EVENT_KIND_STARTED	= 0x1,
        FABRIC_CHAOS_EVENT_KIND_EXECUTING_FAULTS	= 0x2,
        FABRIC_CHAOS_EVENT_KIND_WAITING	= 0x3,
        FABRIC_CHAOS_EVENT_KIND_VALIDATION_FAILED	= 0x4,
        FABRIC_CHAOS_EVENT_KIND_TEST_ERROR	= 0x5,
        FABRIC_CHAOS_EVENT_KIND_STOPPED	= 0x6
    } 	FABRIC_CHAOS_EVENT_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("48e36499-1afb-4e87-b460-e4df32630206") 
enum FABRIC_PROVISION_APPLICATION_TYPE_KIND
    {
        FABRIC_PROVISION_APPLICATION_TYPE_KIND_INVALID	= 0,
        FABRIC_PROVISION_APPLICATION_TYPE_KIND_IMAGE_STORE_PATH	= 0x1,
        FABRIC_PROVISION_APPLICATION_TYPE_KIND_EXTERNAL_STORE	= 0x2
    } 	FABRIC_PROVISION_APPLICATION_TYPE_KIND;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("eb589087-7afc-4f71-be3b-6f1a8e06555e") 
enum FABRIC_APPLICATION_PACKAGE_CLEANUP_POLICY
    {
        FABRIC_APPLICATION_PACKAGE_CLEANUP_POLICY_INVALID	= 0,
        FABRIC_APPLICATION_PACKAGE_CLEANUP_POLICY_CLUSTER_DEFAULT	= 0x1,
        FABRIC_APPLICATION_PACKAGE_CLEANUP_POLICY_CLEANUP_ON_SUCCESSFUL_PROVISION	= 0x2,
        FABRIC_APPLICATION_PACKAGE_CLEANUP_POLICY_NO_CLEANUP_ON_PROVISION	= 0x3
    } 	FABRIC_APPLICATION_PACKAGE_CLEANUP_POLICY;

typedef struct FABRIC_NODE_ID
    {
    ULONGLONG Low;
    ULONGLONG High;
    void *Reserved;
    } 	FABRIC_NODE_ID;

typedef struct FABRIC_OPERATION_DATA_BUFFER
    {
    ULONG BufferSize;
    /* [size_is] */ BYTE *Buffer;
    } 	FABRIC_OPERATION_DATA_BUFFER;

typedef struct FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION
    {
    LPCWSTR Name;
    FABRIC_SERVICE_LOAD_METRIC_WEIGHT Weight;
    ULONG PrimaryDefaultLoad;
    ULONG SecondaryDefaultLoad;
    void *Reserved;
    } 	FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION;

typedef struct FABRIC_PARTITION_SELECTOR
    {
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_SELECTOR_TYPE PartitionSelectorType;
    LPCWSTR PartitionKey;
    void *Reserved;
    } 	FABRIC_PARTITION_SELECTOR;

typedef struct FABRIC_START_PARTITION_DATA_LOSS_DESCRIPTION
    {
    FABRIC_TEST_COMMAND_OPERATION_ID OperationId;
    FABRIC_PARTITION_SELECTOR *PartitionSelector;
    FABRIC_DATA_LOSS_MODE DataLossMode;
    void *Reserved;
    } 	FABRIC_START_PARTITION_DATA_LOSS_DESCRIPTION;

typedef struct FABRIC_START_APPROVED_UPGRADES_DESCRIPTION
    {
    FABRIC_UPGRADE_ORCHESTRATION_SERVICE_OPERATION_ID OperationId;
    LPCWSTR ClusterConfigPath;
    BOOLEAN RollbackOnFailure;
    void *Reserved;
    } 	FABRIC_START_APPROVED_UPGRADES_DESCRIPTION;

typedef struct FABRIC_START_UPGRADE_DESCRIPTION
    {
    LPCWSTR ClusterConfig;
    DWORD HealthCheckRetryTimeoutInSeconds;
    DWORD HealthCheckWaitDurationInSeconds;
    DWORD HealthCheckStableDurationInSeconds;
    DWORD UpgradeDomainTimeoutInSeconds;
    DWORD UpgradeTimeoutInSeconds;
    BYTE MaxPercentUnhealthyApplications;
    BYTE MaxPercentUnhealthyNodes;
    BYTE MaxPercentDeltaUnhealthyNodes;
    BYTE MaxPercentUpgradeDomainDeltaUnhealthyNodes;
    void *Reserved;
    } 	FABRIC_START_UPGRADE_DESCRIPTION;

typedef struct FABRIC_UPGRADE_ORCHESTRATION_SERVICE_STATE
    {
    LPCWSTR CurrentCodeVersion;
    LPCWSTR CurrentManifestVersion;
    LPCWSTR TargetCodeVersion;
    LPCWSTR TargetManifestVersion;
    LPCWSTR PendingUpgradeType;
    void *Reserved;
    } 	FABRIC_UPGRADE_ORCHESTRATION_SERVICE_STATE;

typedef struct FABRIC_SELECTED_PARTITION
    {
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    void *Reserved;
    } 	FABRIC_SELECTED_PARTITION;

typedef struct FABRIC_PARTITION_DATA_LOSS_RESULT
    {
    FABRIC_SELECTED_PARTITION *SelectedPartition;
    HRESULT ErrorCode;
    void *Reserved;
    } 	FABRIC_PARTITION_DATA_LOSS_RESULT;

typedef struct FABRIC_PARTITION_DATA_LOSS_PROGRESS
    {
    FABRIC_TEST_COMMAND_PROGRESS_STATE State;
    FABRIC_PARTITION_DATA_LOSS_RESULT *Result;
    void *Reserved;
    } 	FABRIC_PARTITION_DATA_LOSS_PROGRESS;

typedef struct FABRIC_START_PARTITION_QUORUM_LOSS_DESCRIPTION
    {
    FABRIC_TEST_COMMAND_OPERATION_ID OperationId;
    FABRIC_PARTITION_SELECTOR *PartitionSelector;
    FABRIC_QUORUM_LOSS_MODE QuorumLossMode;
    LONG QuorumLossDurationInMilliSeconds;
    void *Reserved;
    } 	FABRIC_START_PARTITION_QUORUM_LOSS_DESCRIPTION;

typedef struct FABRIC_PARTITION_QUORUM_LOSS_RESULT
    {
    FABRIC_SELECTED_PARTITION *SelectedPartition;
    HRESULT ErrorCode;
    void *Reserved;
    } 	FABRIC_PARTITION_QUORUM_LOSS_RESULT;

typedef struct FABRIC_PARTITION_QUORUM_LOSS_PROGRESS
    {
    FABRIC_TEST_COMMAND_PROGRESS_STATE State;
    FABRIC_PARTITION_QUORUM_LOSS_RESULT *Result;
    void *Reserved;
    } 	FABRIC_PARTITION_QUORUM_LOSS_PROGRESS;

typedef struct FABRIC_START_PARTITION_RESTART_DESCRIPTION
    {
    FABRIC_TEST_COMMAND_OPERATION_ID OperationId;
    FABRIC_PARTITION_SELECTOR *PartitionSelector;
    FABRIC_RESTART_PARTITION_MODE RestartPartitionMode;
    void *Reserved;
    } 	FABRIC_START_PARTITION_RESTART_DESCRIPTION;

typedef struct FABRIC_ORCHESTRATION_UPGRADE_PROGRESS
    {
    FABRIC_UPGRADE_STATE UpgradeState;
    DWORD ProgressStatus;
    void *Reserved;
    } 	FABRIC_ORCHESTRATION_UPGRADE_PROGRESS;

typedef struct FABRIC_ORCHESTRATION_UPGRADE_PROGRESS_EX1
    {
    LPCWSTR ConfigVersion;
    void *Reserved;
    } 	FABRIC_ORCHESTRATION_UPGRADE_PROGRESS_EX1;

typedef struct FABRIC_ORCHESTRATION_UPGRADE_PROGRESS_EX2
    {
    LPCWSTR Details;
    void *Reserved;
    } 	FABRIC_ORCHESTRATION_UPGRADE_PROGRESS_EX2;

typedef struct FABRIC_PARTITION_RESTART_RESULT
    {
    FABRIC_SELECTED_PARTITION *SelectedPartition;
    HRESULT ErrorCode;
    void *Reserved;
    } 	FABRIC_PARTITION_RESTART_RESULT;

typedef struct FABRIC_PARTITION_RESTART_PROGRESS
    {
    FABRIC_TEST_COMMAND_PROGRESS_STATE State;
    FABRIC_PARTITION_RESTART_RESULT *Result;
    void *Reserved;
    } 	FABRIC_PARTITION_RESTART_PROGRESS;

typedef struct FABRIC_CANCEL_TEST_COMMAND_DESCRIPTION
    {
    FABRIC_TEST_COMMAND_OPERATION_ID OperationId;
    BOOLEAN Force;
    void *Reserved;
    } 	FABRIC_CANCEL_TEST_COMMAND_DESCRIPTION;

typedef struct FABRIC_OPERATION_ID
    {
    GUID PartitionId;
    void *Reserved;
    } 	FABRIC_OPERATION_ID;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("88ebda38-7316-4024-ad0a-5e1ddea6bedd") 
enum FABRIC_TEST_COMMAND_STATE_FILTER
    {
        FABRIC_TEST_COMMAND_STATE_FILTER_DEFAULT	= 0,
        FABRIC_TEST_COMMAND_STATE_FILTER_ALL	= 0xffff,
        FABRIC_TEST_COMMAND_STATE_FILTER_RUNNING	= 0x1,
        FABRIC_TEST_COMMAND_STATE_FILTER_ROLLING_BACK	= 0x2,
        FABRIC_TEST_COMMAND_STATE_FILTER_COMPLETED_SUCCESSFULLY	= 0x8,
        FABRIC_TEST_COMMAND_STATE_FILTER_FAILED	= 0x10,
        FABRIC_TEST_COMMAND_STATE_FILTER_CANCELLED	= 0x20,
        FABRIC_TEST_COMMAND_STATE_FILTER_FORCE_CANCELLED	= 0x40
    } 	FABRIC_TEST_COMMAND_STATE_FILTER;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("7065b639-9d36-4f75-affb-f14ee9677544") 
enum FABRIC_TEST_COMMAND_TYPE_FILTER
    {
        FABRIC_TEST_COMMAND_TYPE_FILTER_DEFAULT	= 0,
        FABRIC_TEST_COMMAND_TYPE_FILTER_ALL	= 0xffff,
        FABRIC_TEST_COMMAND_TYPE_FILTER_PARTITION_DATA_LOSS	= 0x1,
        FABRIC_TEST_COMMAND_TYPE_FILTER_PARTITION_QUORUM_LOSS	= 0x2,
        FABRIC_TEST_COMMAND_TYPE_FILTER_PARTITION_RESTART	= 0x4
    } 	FABRIC_TEST_COMMAND_TYPE_FILTER;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("95e0508e-77bf-405b-bdcb-5850a956ec35") 
enum FABRIC_TEST_COMMAND_TYPE
    {
        FABRIC_TEST_COMMAND_TYPE_DEFAULT	= 0,
        FABRIC_TEST_COMMAND_TYPE_INVOKE_DATA_LOSS	= 0x1,
        FABRIC_TEST_COMMAND_TYPE_INVOKE_QUORUM_LOSS	= 0x2,
        FABRIC_TEST_COMMAND_TYPE_INVOKE_RESTART_PARTITION	= 0x4,
        FABRIC_TEST_COMMAND_TYPE_START_NODE_TRANSITION	= 0x8
    } 	FABRIC_TEST_COMMAND_TYPE;

typedef struct FABRIC_TEST_COMMAND_LIST_DESCRIPTION
    {
    FABRIC_TEST_COMMAND_STATE_FILTER TestCommandStateFilter;
    FABRIC_TEST_COMMAND_TYPE_FILTER TestCommandTypeFilter;
    void *Reserved;
    } 	FABRIC_TEST_COMMAND_LIST_DESCRIPTION;

typedef struct TEST_COMMAND_QUERY_RESULT_ITEM
    {
    GUID OperationId;
    FABRIC_TEST_COMMAND_PROGRESS_STATE TestCommandState;
    FABRIC_TEST_COMMAND_TYPE TestCommandType;
    void *Reserved;
    } 	TEST_COMMAND_QUERY_RESULT_ITEM;

typedef struct TEST_COMMAND_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ void *Items;
    } 	TEST_COMMAND_QUERY_RESULT_LIST;

typedef struct FABRIC_NODE_RESULT
    {
    LPCWSTR NodeName;
    FABRIC_NODE_INSTANCE_ID NodeInstance;
    void *Reserved;
    } 	FABRIC_NODE_RESULT;

typedef struct FABRIC_RESTART_NODE_STATUS
    {
    FABRIC_NODE_RESULT *NodeResult;
    void *Reserved;
    } 	FABRIC_RESTART_NODE_STATUS;

typedef struct FABRIC_START_NODE_STATUS
    {
    FABRIC_NODE_RESULT *NodeResult;
    void *Reserved;
    } 	FABRIC_START_NODE_STATUS;

typedef struct FABRIC_STOP_NODE_STATUS
    {
    FABRIC_NODE_RESULT *NodeResult;
    void *Reserved;
    } 	FABRIC_STOP_NODE_STATUS;

typedef struct FABRIC_NODE_TRANSITION_RESULT
    {
    HRESULT ErrorCode;
    FABRIC_NODE_RESULT *NodeResult;
    void *Reserved;
    } 	FABRIC_NODE_TRANSITION_RESULT;

typedef struct FABRIC_NODE_TRANSITION_PROGRESS
    {
    FABRIC_TEST_COMMAND_PROGRESS_STATE State;
    FABRIC_NODE_TRANSITION_RESULT *Result;
    void *Reserved;
    } 	FABRIC_NODE_TRANSITION_PROGRESS;

typedef struct FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION *Items;
    } 	FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION_LIST;

typedef struct FABRIC_SERVICE_CORRELATION_DESCRIPTION
    {
    FABRIC_URI ServiceName;
    FABRIC_SERVICE_CORRELATION_SCHEME Scheme;
    void *Reserved;
    } 	FABRIC_SERVICE_CORRELATION_DESCRIPTION;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("f22165b2-fdc7-4bfa-aea4-aa3af0e1be90") 
enum FABRIC_PLACEMENT_POLICY_TYPE
    {
        FABRIC_PLACEMENT_POLICY_INVALID	= 0,
        FABRIC_PLACEMENT_POLICY_INVALID_DOMAIN	= 0x1,
        FABRIC_PLACEMENT_POLICY_REQUIRED_DOMAIN	= 0x2,
        FABRIC_PLACEMENT_POLICY_PREFERRED_PRIMARY_DOMAIN	= 0x3,
        FABRIC_PLACEMENT_POLICY_REQUIRED_DOMAIN_DISTRIBUTION	= 0x4,
        FABRIC_PLACEMENT_POLICY_NONPARTIALLY_PLACE_SERVICE	= 0x5
    } 	FABRIC_PLACEMENT_POLICY_TYPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("3038af2a-63e5-46b2-9c3a-1fcbbdf2aed6") 
enum FABRIC_PACKAGE_SHARING_POLICY_SCOPE
    {
        FABRIC_PACKAGE_SHARING_POLICY_SCOPE_NONE	= 0,
        FABRIC_PACKAGE_SHARING_POLICY_SCOPE_ALL	= 0x1,
        FABRIC_PACKAGE_SHARING_POLICY_SCOPE_CODE	= 0x2,
        FABRIC_PACKAGE_SHARING_POLICY_SCOPE_CONFIG	= 0x3,
        FABRIC_PACKAGE_SHARING_POLICY_SCOPE_DATA	= 0x4
    } 	FABRIC_PACKAGE_SHARING_POLICY_SCOPE;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("b6159356-1c25-4467-b7ca-8ebd1a8e2cc9") 
enum FABRIC_HEALTH_STATE_FILTER
    {
        FABRIC_HEALTH_STATE_FILTER_DEFAULT	= 0,
        FABRIC_HEALTH_STATE_FILTER_NONE	= 0x1,
        FABRIC_HEALTH_STATE_FILTER_OK	= 0x2,
        FABRIC_HEALTH_STATE_FILTER_WARNING	= 0x4,
        FABRIC_HEALTH_STATE_FILTER_ERROR	= 0x8,
        FABRIC_HEALTH_STATE_FILTER_ALL	= 0xffff
    } 	FABRIC_HEALTH_STATE_FILTER;

typedef /* [uuid][v1_enum] */  DECLSPEC_UUID("d74f7718-93bc-4a4d-874a-60869702a3d2") 
enum FABRIC_APPLICATION_UPDATE_DESCRIPTION_FLAGS
    {
        FABRIC_APPLICATION_UPDATE_DESCRIPTION_FLAGS_NONE	= 0,
        FABRIC_APPLICATION_UPDATE_DESCRIPTION_FLAGS_MINNODES	= 0x1,
        FABRIC_APPLICATION_UPDATE_DESCRIPTION_FLAGS_MAXNODES	= 0x2,
        FABRIC_APPLICATION_UPDATE_DESCRIPTION_FLAGS_METRICS	= 0x4
    } 	FABRIC_APPLICATION_UPDATE_DESCRIPTION_FLAGS;

typedef struct FABRIC_PLACEMENT_POLICY_INVALID_DOMAIN_DESCRIPTION
    {
    LPCWSTR InvalidFaultDomain;
    void *Reserved;
    } 	FABRIC_PLACEMENT_POLICY_INVALID_DOMAIN_DESCRIPTION;

typedef struct FABRIC_PLACEMENT_POLICY_REQUIRED_DOMAIN_DESCRIPTION
    {
    LPCWSTR RequiredFaultDomain;
    void *Reserved;
    } 	FABRIC_PLACEMENT_POLICY_REQUIRED_DOMAIN_DESCRIPTION;

typedef struct FABRIC_PLACEMENT_POLICY_PREFERRED_PRIMARY_DOMAIN_DESCRIPTION
    {
    LPCWSTR PreferredPrimaryFaultDomain;
    void *Reserved;
    } 	FABRIC_PLACEMENT_POLICY_PREFERRED_PRIMARY_DOMAIN_DESCRIPTION;

typedef struct FABRIC_PLACEMENT_POLICY_REQUIRED_DOMAIN_DISTRIBUTION_DESCRIPTION
    {
    void *Reserved;
    } 	FABRIC_PLACEMENT_POLICY_REQUIRED_DOMAIN_DISTRIBUTION_DESCRIPTION;

typedef struct FABRIC_PLACEMENT_POLICY_NONPARTIALLY_PLACE_SERVICE_DESCRIPTION
    {
    void *Reserved;
    } 	FABRIC_PLACEMENT_POLICY_NONPARTIALLY_PLACE_SERVICE_DESCRIPTION;

typedef struct FABRIC_SERVICE_PLACEMENT_POLICY_DESCRIPTION
    {
    FABRIC_PLACEMENT_POLICY_TYPE Type;
    void *Value;
    } 	FABRIC_SERVICE_PLACEMENT_POLICY_DESCRIPTION;

typedef struct FABRIC_SERVICE_PLACEMENT_POLICY_LIST
    {
    ULONG PolicyCount;
    /* [size_is] */ FABRIC_SERVICE_PLACEMENT_POLICY_DESCRIPTION *Policies;
    } 	FABRIC_SERVICE_PLACEMENT_POLICY_LIST;

typedef struct FABRIC_SERVICE_PARTITION_INFORMATION
    {
    FABRIC_SERVICE_PARTITION_KIND Kind;
    void *Value;
    } 	FABRIC_SERVICE_PARTITION_INFORMATION;

typedef struct FABRIC_SINGLETON_PARTITION_INFORMATION
    {
    FABRIC_PARTITION_ID Id;
    void *Reserved;
    } 	FABRIC_SINGLETON_PARTITION_INFORMATION;

typedef struct FABRIC_INT64_RANGE_PARTITION_INFORMATION
    {
    FABRIC_PARTITION_ID Id;
    LONGLONG LowKey;
    LONGLONG HighKey;
    void *Reserved;
    } 	FABRIC_INT64_RANGE_PARTITION_INFORMATION;

typedef struct FABRIC_NAMED_PARTITION_INFORMATION
    {
    FABRIC_PARTITION_ID Id;
    LPCWSTR Name;
    void *Reserved;
    } 	FABRIC_NAMED_PARTITION_INFORMATION;

typedef struct FABRIC_CODE_PACKAGE_ENTRY_POINT_DESCRIPTION
    {
    FABRIC_CODE_PACKAGE_ENTRY_POINT_KIND Kind;
    void *Value;
    } 	FABRIC_CODE_PACKAGE_ENTRY_POINT_DESCRIPTION;

typedef struct FABRIC_EXEHOST_ENTRY_POINT_DESCRIPTION
    {
    LPCWSTR Program;
    LPCWSTR Arguments;
    FABRIC_EXEHOST_WORKING_FOLDER WorkingFolder;
    void *Reserved;
    } 	FABRIC_EXEHOST_ENTRY_POINT_DESCRIPTION;

typedef struct FABRIC_EXEHOST_ENTRY_POINT_DESCRIPTION_EX1
    {
    ULONG PeriodicIntervalInSeconds;
    BOOLEAN ConsoleRedirectionEnabled;
    ULONG ConsoleRedirectionFileRetentionCount;
    ULONG ConsoleRedirectionFileMaxSizeInKb;
    void *Reserved;
    } 	FABRIC_EXEHOST_ENTRY_POINT_DESCRIPTION_EX1;

typedef struct FABRIC_EXEHOST_ENTRY_POINT_DESCRIPTION_EX2
    {
    BOOLEAN IsExternalExecutable;
    void *Reserved;
    } 	FABRIC_EXEHOST_ENTRY_POINT_DESCRIPTION_EX2;

typedef struct FABRIC_DLLHOST_HOSTED_DLL_DESCRIPTION
    {
    FABRIC_DLLHOST_HOSTED_DLL_KIND Kind;
    void *Value;
    } 	FABRIC_DLLHOST_HOSTED_DLL_DESCRIPTION;

typedef struct FABRIC_DLLHOST_HOSTED_UNMANAGED_DLL_DESCRIPTION
    {
    LPCWSTR DllName;
    void *Reserved;
    } 	FABRIC_DLLHOST_HOSTED_UNMANAGED_DLL_DESCRIPTION;

typedef struct FABRIC_DLLHOST_HOSTED_MANAGED_DLL_DESCRIPTION
    {
    LPCWSTR AssemblyName;
    void *Reserved;
    } 	FABRIC_DLLHOST_HOSTED_MANAGED_DLL_DESCRIPTION;

typedef struct FABRIC_DLLHOST_HOSTED_DLL_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ FABRIC_DLLHOST_HOSTED_DLL_DESCRIPTION *Items;
    } 	FABRIC_DLLHOST_HOSTED_DLL_DESCRIPTION_LIST;

typedef struct FABRIC_DLLHOST_ENTRY_POINT_DESCRIPTION
    {
    FABRIC_DLLHOST_ISOLATION_POLICY IsolationPolicyType;
    FABRIC_DLLHOST_HOSTED_DLL_DESCRIPTION_LIST *HostedDlls;
    void *Reserved;
    } 	FABRIC_DLLHOST_ENTRY_POINT_DESCRIPTION;

typedef struct FABRIC_CODE_PACKAGE_DESCRIPTION
    {
    LPCWSTR Name;
    LPCWSTR Version;
    LPCWSTR ServiceManifestName;
    LPCWSTR ServiceManifestVersion;
    BOOLEAN IsShared;
    FABRIC_EXEHOST_ENTRY_POINT_DESCRIPTION *SetupEntryPoint;
    FABRIC_CODE_PACKAGE_ENTRY_POINT_DESCRIPTION *EntryPoint;
    void *Reserved;
    } 	FABRIC_CODE_PACKAGE_DESCRIPTION;

typedef struct FABRIC_RUNAS_POLICY_DESCRIPTION
    {
    LPCWSTR UserName;
    void *Reserved;
    } 	FABRIC_RUNAS_POLICY_DESCRIPTION;

typedef struct FABRIC_CONFIGURATION_PACKAGE_DESCRIPTION
    {
    LPCWSTR Name;
    LPCWSTR Version;
    LPCWSTR ServiceManifestName;
    LPCWSTR ServiceManifestVersion;
    void *Reserved;
    } 	FABRIC_CONFIGURATION_PACKAGE_DESCRIPTION;

typedef struct FABRIC_DATA_PACKAGE_DESCRIPTION
    {
    LPCWSTR Name;
    LPCWSTR Version;
    LPCWSTR ServiceManifestName;
    LPCWSTR ServiceManifestVersion;
    void *Reserved;
    } 	FABRIC_DATA_PACKAGE_DESCRIPTION;

typedef struct FABRIC_SERVICE_TYPE_DESCRIPTION
    {
    FABRIC_SERVICE_KIND Kind;
    void *Value;
    } 	FABRIC_SERVICE_TYPE_DESCRIPTION;

typedef struct FABRIC_SERVICE_TYPE_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_TYPE_DESCRIPTION *Items;
    } 	FABRIC_SERVICE_TYPE_DESCRIPTION_LIST;

typedef struct FABRIC_SERVICE_TYPE_DESCRIPTION_EXTENSION
    {
    LPCWSTR Name;
    LPCWSTR Value;
    void *Reserved;
    } 	FABRIC_SERVICE_TYPE_DESCRIPTION_EXTENSION;

typedef struct FABRIC_SERVICE_TYPE_DESCRIPTION_EXTENSION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_TYPE_DESCRIPTION_EXTENSION *Items;
    } 	FABRIC_SERVICE_TYPE_DESCRIPTION_EXTENSION_LIST;

typedef struct FABRIC_STATELESS_SERVICE_TYPE_DESCRIPTION
    {
    LPCWSTR ServiceTypeName;
    LPCWSTR PlacementConstraints;
    const FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION_LIST *LoadMetrics;
    const FABRIC_SERVICE_TYPE_DESCRIPTION_EXTENSION_LIST *Extensions;
    BOOLEAN UseImplicitHost;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_TYPE_DESCRIPTION;

typedef struct FABRIC_STATELESS_SERVICE_TYPE_DESCRIPTION_EX1
    {
    FABRIC_SERVICE_PLACEMENT_POLICY_LIST *PolicyList;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_TYPE_DESCRIPTION_EX1;

typedef struct FABRIC_STATEFUL_SERVICE_TYPE_DESCRIPTION
    {
    LPCWSTR ServiceTypeName;
    LPCWSTR PlacementConstraints;
    const FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION_LIST *LoadMetrics;
    const FABRIC_SERVICE_TYPE_DESCRIPTION_EXTENSION_LIST *Extensions;
    BOOLEAN HasPersistedState;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_TYPE_DESCRIPTION;

typedef struct FABRIC_STATEFUL_SERVICE_TYPE_DESCRIPTION_EX1
    {
    FABRIC_SERVICE_PLACEMENT_POLICY_LIST *PolicyList;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_TYPE_DESCRIPTION_EX1;

typedef struct FABRIC_SERVICE_GROUP_TYPE_MEMBER_DESCRIPTION
    {
    LPCWSTR ServiceTypeName;
    const FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION_LIST *LoadMetrics;
    void *Reserved;
    } 	FABRIC_SERVICE_GROUP_TYPE_MEMBER_DESCRIPTION;

typedef struct FABRIC_SERVICE_GROUP_TYPE_MEMBER_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_GROUP_TYPE_MEMBER_DESCRIPTION *Items;
    } 	FABRIC_SERVICE_GROUP_TYPE_MEMBER_DESCRIPTION_LIST;

typedef struct FABRIC_SERVICE_GROUP_TYPE_DESCRIPTION
    {
    const FABRIC_SERVICE_TYPE_DESCRIPTION *Description;
    const FABRIC_SERVICE_GROUP_TYPE_MEMBER_DESCRIPTION_LIST *Members;
    BOOLEAN UseImplicitFactory;
    void *Reserved;
    } 	FABRIC_SERVICE_GROUP_TYPE_DESCRIPTION;

typedef struct FABRIC_SERVICE_GROUP_TYPE_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_GROUP_TYPE_DESCRIPTION *Items;
    } 	FABRIC_SERVICE_GROUP_TYPE_DESCRIPTION_LIST;

typedef struct FABRIC_ENDPOINT_RESOURCE_DESCRIPTION
    {
    LPCWSTR Name;
    LPCWSTR Protocol;
    LPCWSTR Type;
    ULONG Port;
    LPCWSTR CertificateName;
    void *Reserved;
    } 	FABRIC_ENDPOINT_RESOURCE_DESCRIPTION;

typedef struct FABRIC_ENDPOINT_RESOURCE_DESCRIPTION_EX1
    {
    LPCWSTR UriScheme;
    LPCWSTR PathSuffix;
    void *Reserved;
    } 	FABRIC_ENDPOINT_RESOURCE_DESCRIPTION_EX1;

typedef struct FABRIC_ENDPOINT_RESOURCE_DESCRIPTION_EX2
    {
    LPCWSTR CodePackageName;
    LPCWSTR IpAddressOrFqdn;
    void *Reserved;
    } 	FABRIC_ENDPOINT_RESOURCE_DESCRIPTION_EX2;

typedef struct FABRIC_ENDPOINT_RESOURCE_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_ENDPOINT_RESOURCE_DESCRIPTION *Items;
    } 	FABRIC_ENDPOINT_RESOURCE_DESCRIPTION_LIST;

typedef struct FABRIC_CODE_PACKAGE_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_CODE_PACKAGE_DESCRIPTION *Items;
    } 	FABRIC_CODE_PACKAGE_DESCRIPTION_LIST;

typedef struct FABRIC_CONFIGURATION_PACKAGE_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_CONFIGURATION_PACKAGE_DESCRIPTION *Items;
    } 	FABRIC_CONFIGURATION_PACKAGE_DESCRIPTION_LIST;

typedef struct FABRIC_DATA_PACKAGE_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DATA_PACKAGE_DESCRIPTION *Items;
    } 	FABRIC_DATA_PACKAGE_DESCRIPTION_LIST;

typedef struct FABRIC_CONFIGURATION_PARAMETER
    {
    LPCWSTR Name;
    LPCWSTR Value;
    BOOLEAN MustOverride;
    BOOLEAN IsEncrypted;
    void *Reserved;
    } 	FABRIC_CONFIGURATION_PARAMETER;

typedef struct FABRIC_CONFIGURATION_PARAMETER_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_CONFIGURATION_PARAMETER *Items;
    } 	FABRIC_CONFIGURATION_PARAMETER_LIST;

typedef struct FABRIC_CONFIGURATION_SECTION
    {
    LPCWSTR Name;
    const FABRIC_CONFIGURATION_PARAMETER_LIST *Parameters;
    void *Reserved;
    } 	FABRIC_CONFIGURATION_SECTION;

typedef struct FABRIC_CONFIGURATION_SECTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_CONFIGURATION_SECTION *Items;
    } 	FABRIC_CONFIGURATION_SECTION_LIST;

typedef struct FABRIC_CONFIGURATION_SETTINGS
    {
    const FABRIC_CONFIGURATION_SECTION_LIST *Sections;
    void *Reserved;
    } 	FABRIC_CONFIGURATION_SETTINGS;

typedef struct FABRIC_STRING_LIST
    {
    ULONG Count;
    /* [size_is] */ const LPCWSTR *Items;
    } 	FABRIC_STRING_LIST;

typedef struct FABRIC_EPOCH
    {
    LONGLONG DataLossNumber;
    LONGLONG ConfigurationNumber;
    void *Reserved;
    } 	FABRIC_EPOCH;

typedef struct FABRIC_OPERATION_METADATA
    {
    FABRIC_OPERATION_TYPE Type;
    FABRIC_SEQUENCE_NUMBER SequenceNumber;
    FABRIC_ATOMIC_GROUP_ID AtomicGroupId;
    void *Reserved;
    } 	FABRIC_OPERATION_METADATA;

typedef struct FABRIC_REPLICA_INFORMATION
    {
    FABRIC_REPLICA_ID Id;
    FABRIC_REPLICA_ROLE Role;
    FABRIC_REPLICA_STATUS Status;
    LPCWSTR ReplicatorAddress;
    FABRIC_SEQUENCE_NUMBER CurrentProgress;
    FABRIC_SEQUENCE_NUMBER CatchUpCapability;
    void *Reserved;
    } 	FABRIC_REPLICA_INFORMATION;

typedef struct FABRIC_REPLICA_INFORMATION_EX1
    {
    BOOLEAN MustCatchup;
    void *Reserved;
    } 	FABRIC_REPLICA_INFORMATION_EX1;

typedef struct FABRIC_REPLICA_SET_CONFIGURATION
    {
    ULONG ReplicaCount;
    /* [size_is] */ const FABRIC_REPLICA_INFORMATION *Replicas;
    ULONG WriteQuorum;
    void *Reserved;
    } 	FABRIC_REPLICA_SET_CONFIGURATION;

typedef struct FABRIC_LOAD_METRIC
    {
    LPCWSTR Name;
    ULONG Value;
    void *Reserved;
    } 	FABRIC_LOAD_METRIC;

typedef struct FABRIC_SECURITY_CREDENTIALS
    {
    FABRIC_SECURITY_CREDENTIAL_KIND Kind;
    void *Value;
    } 	FABRIC_SECURITY_CREDENTIALS;

typedef struct FABRIC_REPLICATOR_SETTINGS
    {
    DWORD Flags;
    DWORD RetryIntervalMilliseconds;
    DWORD BatchAcknowledgementIntervalMilliseconds;
    LPCWSTR ReplicatorAddress;
    BOOLEAN RequireServiceAck;
    DWORD InitialReplicationQueueSize;
    DWORD MaxReplicationQueueSize;
    DWORD InitialCopyQueueSize;
    DWORD MaxCopyQueueSize;
    const FABRIC_SECURITY_CREDENTIALS *SecurityCredentials;
    void *Reserved;
    } 	FABRIC_REPLICATOR_SETTINGS;

typedef struct FABRIC_REPLICATOR_SETTINGS_EX1
    {
    DWORD MaxReplicationQueueMemorySize;
    BOOLEAN SecondaryClearAcknowledgedOperations;
    DWORD MaxReplicationMessageSize;
    void *Reserved;
    } 	FABRIC_REPLICATOR_SETTINGS_EX1;

typedef struct FABRIC_REPLICATOR_SETTINGS_EX2
    {
    BOOLEAN UseStreamFaultsAndEndOfStreamOperationAck;
    void *Reserved;
    } 	FABRIC_REPLICATOR_SETTINGS_EX2;

typedef struct FABRIC_REPLICATOR_SETTINGS_EX3
    {
    DWORD InitialPrimaryReplicationQueueSize;
    DWORD MaxPrimaryReplicationQueueSize;
    DWORD MaxPrimaryReplicationQueueMemorySize;
    DWORD InitialSecondaryReplicationQueueSize;
    DWORD MaxSecondaryReplicationQueueSize;
    DWORD MaxSecondaryReplicationQueueMemorySize;
    DWORD PrimaryWaitForPendingQuorumsTimeoutMilliseconds;
    void *Reserved;
    } 	FABRIC_REPLICATOR_SETTINGS_EX3;

typedef struct FABRIC_REPLICATOR_SETTINGS_EX4
    {
    LPCWSTR ReplicatorListenAddress;
    LPCWSTR ReplicatorPublishAddress;
    void *Reserved;
    } 	FABRIC_REPLICATOR_SETTINGS_EX4;

typedef struct FABRIC_NAMED_PROPERTY_METADATA
    {
    LPCWSTR PropertyName;
    FABRIC_PROPERTY_TYPE_ID TypeId;
    LONG ValueSize;
    FABRIC_SEQUENCE_NUMBER SequenceNumber;
    FILETIME LastModifiedUtc;
    FABRIC_URI Name;
    void *Reserved;
    } 	FABRIC_NAMED_PROPERTY_METADATA;

typedef struct FABRIC_NAMED_PROPERTY_METADATA_EX1
    {
    LPCWSTR CustomTypeId;
    void *Reserved;
    } 	FABRIC_NAMED_PROPERTY_METADATA_EX1;

typedef struct FABRIC_NAMED_PROPERTY
    {
    const FABRIC_NAMED_PROPERTY_METADATA *Metadata;
    BYTE *Value;
    void *Reserved;
    } 	FABRIC_NAMED_PROPERTY;

typedef struct FABRIC_PUT_PROPERTY_OPERATION
    {
    LPCWSTR PropertyName;
    FABRIC_PROPERTY_TYPE_ID PropertyTypeId;
    void *PropertyValue;
    void *Reserved;
    } 	FABRIC_PUT_PROPERTY_OPERATION;

typedef struct FABRIC_PUT_CUSTOM_PROPERTY_OPERATION
    {
    LPCWSTR PropertyName;
    FABRIC_PROPERTY_TYPE_ID PropertyTypeId;
    void *PropertyValue;
    LPCWSTR PropertyCustomTypeId;
    void *Reserved;
    } 	FABRIC_PUT_CUSTOM_PROPERTY_OPERATION;

typedef struct FABRIC_GET_PROPERTY_OPERATION
    {
    LPCWSTR PropertyName;
    BOOLEAN IncludeValue;
    void *Reserved;
    } 	FABRIC_GET_PROPERTY_OPERATION;

typedef struct FABRIC_DELETE_PROPERTY_OPERATION
    {
    LPCWSTR PropertyName;
    void *Reserved;
    } 	FABRIC_DELETE_PROPERTY_OPERATION;

typedef struct FABRIC_CHECK_SEQUENCE_PROPERTY_OPERATION
    {
    LPCWSTR PropertyName;
    FABRIC_SEQUENCE_NUMBER SequenceNumber;
    void *Reserved;
    } 	FABRIC_CHECK_SEQUENCE_PROPERTY_OPERATION;

typedef struct FABRIC_CHECK_EXISTS_PROPERTY_OPERATION
    {
    LPCWSTR PropertyName;
    BOOLEAN ExistenceCheck;
    void *Reserved;
    } 	FABRIC_CHECK_EXISTS_PROPERTY_OPERATION;

typedef struct FABRIC_CHECK_VALUE_PROPERTY_OPERATION
    {
    LPCWSTR PropertyName;
    FABRIC_PROPERTY_TYPE_ID PropertyTypeId;
    void *PropertyValue;
    void *Reserved;
    } 	FABRIC_CHECK_VALUE_PROPERTY_OPERATION;

typedef struct FABRIC_PROPERTY_BATCH_OPERATION
    {
    FABRIC_PROPERTY_BATCH_OPERATION_KIND Kind;
    void *Value;
    } 	FABRIC_PROPERTY_BATCH_OPERATION;

typedef struct FABRIC_SERVICE_DESCRIPTION
    {
    FABRIC_SERVICE_DESCRIPTION_KIND Kind;
    void *Value;
    } 	FABRIC_SERVICE_DESCRIPTION;

typedef struct FABRIC_NODE_TRANSITION_DESCRIPTION
    {
    FABRIC_NODE_TRANSITION_TYPE NodeTransitionType;
    void *Value;
    } 	FABRIC_NODE_TRANSITION_DESCRIPTION;

typedef struct FABRIC_NODE_STOP_DESCRIPTION
    {
    FABRIC_TEST_COMMAND_OPERATION_ID OperationId;
    LPCWSTR NodeName;
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    DWORD StopDurationInSeconds;
    void *Reserved;
    } 	FABRIC_NODE_STOP_DESCRIPTION;

typedef struct FABRIC_NODE_START_DESCRIPTION
    {
    FABRIC_TEST_COMMAND_OPERATION_ID OperationId;
    LPCWSTR NodeName;
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    void *Reserved;
    } 	FABRIC_NODE_START_DESCRIPTION;

typedef struct FABRIC_SERVICE_UPDATE_DESCRIPTION
    {
    FABRIC_SERVICE_DESCRIPTION_KIND Kind;
    void *Value;
    } 	FABRIC_SERVICE_UPDATE_DESCRIPTION;

typedef struct FABRIC_DELETE_SERVICE_DESCRIPTION
    {
    FABRIC_URI ServiceName;
    BOOLEAN ForceDelete;
    void *Reserved;
    } 	FABRIC_DELETE_SERVICE_DESCRIPTION;

typedef struct FABRIC_SERVICE_FROM_TEMPLATE_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    FABRIC_URI ServiceName;
    LPCWSTR ServiceDnsName;
    LPCWSTR ServiceTypeName;
    FABRIC_SERVICE_PACKAGE_ACTIVATION_MODE ServicePackageActivationMode;
    ULONG InitializationDataSize;
    BYTE *InitializationData;
    void *Reserved;
    } 	FABRIC_SERVICE_FROM_TEMPLATE_DESCRIPTION;

typedef struct FABRIC_SERVICE_GROUP_FROM_TEMPLATE_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    FABRIC_URI ServiceName;
    LPCWSTR ServiceTypeName;
    FABRIC_SERVICE_PACKAGE_ACTIVATION_MODE ServicePackageActivationMode;
    ULONG InitializationDataSize;
    BYTE *InitializationData;
    void *Reserved;
    } 	FABRIC_SERVICE_GROUP_FROM_TEMPLATE_DESCRIPTION;

typedef struct FABRIC_UPGRADE_DOMAIN_STATUS_DESCRIPTION
    {
    LPCWSTR Name;
    FABRIC_UPGRADE_DOMAIN_STATE State;
    void *Reserved;
    } 	FABRIC_UPGRADE_DOMAIN_STATUS_DESCRIPTION;

typedef struct FABRIC_UPGRADE_DOMAIN_STATUS_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_UPGRADE_DOMAIN_STATUS_DESCRIPTION *Items;
    } 	FABRIC_UPGRADE_DOMAIN_STATUS_DESCRIPTION_LIST;

typedef struct FABRIC_UPGRADE_SAFETY_CHECK
    {
    FABRIC_UPGRADE_SAFETY_CHECK_KIND Kind;
    void *Value;
    } 	FABRIC_UPGRADE_SAFETY_CHECK;

typedef struct FABRIC_UPGRADE_PARTITION_SAFETY_CHECK
    {
    FABRIC_PARTITION_ID PartitionId;
    void *Reserved;
    } 	FABRIC_UPGRADE_PARTITION_SAFETY_CHECK;

typedef struct FABRIC_UPGRADE_SEED_NODE_SAFETY_CHECK
    {
    void *Reserved;
    } 	FABRIC_UPGRADE_SEED_NODE_SAFETY_CHECK;

typedef struct FABRIC_UPGRADE_SAFETY_CHECK_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_UPGRADE_SAFETY_CHECK *Items;
    } 	FABRIC_UPGRADE_SAFETY_CHECK_LIST;

typedef struct FABRIC_NODE_UPGRADE_PROGRESS
    {
    LPCWSTR NodeName;
    FABRIC_NODE_UPGRADE_PHASE UpgradePhase;
    const FABRIC_UPGRADE_SAFETY_CHECK_LIST *PendingSafetyChecks;
    void *Reserved;
    } 	FABRIC_NODE_UPGRADE_PROGRESS;

typedef struct FABRIC_NODE_UPGRADE_PROGRESS_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_NODE_UPGRADE_PROGRESS *Items;
    } 	FABRIC_NODE_UPGRADE_PROGRESS_LIST;

typedef struct FABRIC_UPGRADE_DOMAIN_PROGRESS
    {
    LPCWSTR UpgradeDomainName;
    FABRIC_NODE_UPGRADE_PROGRESS_LIST *NodeProgressList;
    void *Reserved;
    } 	FABRIC_UPGRADE_DOMAIN_PROGRESS;

typedef struct FABRIC_STATELESS_SERVICE_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    FABRIC_URI ServiceName;
    LPCWSTR ServiceTypeName;
    ULONG InitializationDataSize;
    /* [size_is] */ BYTE *InitializationData;
    FABRIC_PARTITION_SCHEME PartitionScheme;
    void *PartitionSchemeDescription;
    LONG InstanceCount;
    LPCWSTR PlacementConstraints;
    ULONG CorrelationCount;
    /* [size_is] */ FABRIC_SERVICE_CORRELATION_DESCRIPTION *Correlations;
    ULONG MetricCount;
    /* [size_is] */ FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION *Metrics;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_DESCRIPTION;

typedef struct FABRIC_STATELESS_SERVICE_DESCRIPTION_EX1
    {
    FABRIC_SERVICE_PLACEMENT_POLICY_LIST *PolicyList;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_DESCRIPTION_EX1;

typedef struct FABRIC_STATELESS_SERVICE_DESCRIPTION_EX2
    {
    BOOLEAN IsDefaultMoveCostSpecified;
    FABRIC_MOVE_COST DefaultMoveCost;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_DESCRIPTION_EX2;

typedef struct FABRIC_STATELESS_SERVICE_DESCRIPTION_EX3
    {
    FABRIC_SERVICE_PACKAGE_ACTIVATION_MODE ServicePackageActivationMode;
    LPCWSTR ServiceDnsName;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_DESCRIPTION_EX3;

typedef struct FABRIC_STATELESS_SERVICE_UPDATE_DESCRIPTION
    {
    DWORD Flags;
    LONG InstanceCount;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_UPDATE_DESCRIPTION;

typedef struct FABRIC_STATELESS_SERVICE_UPDATE_DESCRIPTION_EX1
    {
    LPCWSTR PlacementConstraints;
    FABRIC_SERVICE_PLACEMENT_POLICY_LIST *PolicyList;
    ULONG CorrelationCount;
    /* [size_is] */ FABRIC_SERVICE_CORRELATION_DESCRIPTION *Correlations;
    ULONG MetricCount;
    /* [size_is] */ FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION *Metrics;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_UPDATE_DESCRIPTION_EX1;

typedef struct FABRIC_STATELESS_SERVICE_UPDATE_DESCRIPTION_EX2
    {
    FABRIC_MOVE_COST DefaultMoveCost;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_UPDATE_DESCRIPTION_EX2;

typedef struct FABRIC_STATELESS_SERVICE_UPDATE_DESCRIPTION_EX3
    {
    FABRIC_SERVICE_PARTITION_KIND RepartitionKind;
    void *RepartitionDescription;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_UPDATE_DESCRIPTION_EX3;

typedef struct FABRIC_STATEFUL_SERVICE_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    FABRIC_URI ServiceName;
    LPCWSTR ServiceTypeName;
    ULONG InitializationDataSize;
    /* [size_is] */ BYTE *InitializationData;
    FABRIC_PARTITION_SCHEME PartitionScheme;
    void *PartitionSchemeDescription;
    LONG TargetReplicaSetSize;
    LONG MinReplicaSetSize;
    LPCWSTR PlacementConstraints;
    ULONG CorrelationCount;
    /* [size_is] */ FABRIC_SERVICE_CORRELATION_DESCRIPTION *Correlations;
    ULONG MetricCount;
    /* [size_is] */ FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION *Metrics;
    BOOLEAN HasPersistedState;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_DESCRIPTION;

typedef struct FABRIC_STATEFUL_SERVICE_FAILOVER_SETTINGS
    {
    DWORD Flags;
    DWORD ReplicaRestartWaitDurationSeconds;
    DWORD QuorumLossWaitDurationSeconds;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_FAILOVER_SETTINGS;

typedef struct FABRIC_STATEFUL_SERVICE_FAILOVER_SETTINGS_EX1
    {
    DWORD StandByReplicaKeepDurationSeconds;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_FAILOVER_SETTINGS_EX1;

typedef struct FABRIC_STATEFUL_SERVICE_DESCRIPTION_EX1
    {
    FABRIC_SERVICE_PLACEMENT_POLICY_LIST *PolicyList;
    FABRIC_STATEFUL_SERVICE_FAILOVER_SETTINGS *FailoverSettings;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_DESCRIPTION_EX1;

typedef struct FABRIC_STATEFUL_SERVICE_DESCRIPTION_EX2
    {
    BOOLEAN IsDefaultMoveCostSpecified;
    FABRIC_MOVE_COST DefaultMoveCost;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_DESCRIPTION_EX2;

typedef struct FABRIC_STATEFUL_SERVICE_DESCRIPTION_EX3
    {
    FABRIC_SERVICE_PACKAGE_ACTIVATION_MODE ServicePackageActivationMode;
    LPCWSTR ServiceDnsName;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_DESCRIPTION_EX3;

typedef struct FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION
    {
    DWORD Flags;
    LONG TargetReplicaSetSize;
    DWORD ReplicaRestartWaitDurationSeconds;
    DWORD QuorumLossWaitDurationSeconds;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION;

typedef struct FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_EX1
    {
    DWORD StandByReplicaKeepDurationSeconds;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_EX1;

typedef struct FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_EX2
    {
    LONG MinReplicaSetSize;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_EX2;

typedef struct FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_EX3
    {
    LPCWSTR PlacementConstraints;
    FABRIC_SERVICE_PLACEMENT_POLICY_LIST *PolicyList;
    ULONG CorrelationCount;
    /* [size_is] */ FABRIC_SERVICE_CORRELATION_DESCRIPTION *Correlations;
    ULONG MetricCount;
    /* [size_is] */ FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION *Metrics;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_EX3;

typedef struct FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_EX4
    {
    FABRIC_MOVE_COST DefaultMoveCost;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_EX4;

typedef struct FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_EX5
    {
    FABRIC_SERVICE_PARTITION_KIND RepartitionKind;
    void *RepartitionDescription;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_UPDATE_DESCRIPTION_EX5;

typedef struct FABRIC_NAMED_REPARTITION_DESCRIPTION
    {
    ULONG NamesToAddCount;
    /* [size_is] */ LPCWSTR *NamesToAdd;
    ULONG NamesToRemoveCount;
    /* [size_is] */ LPCWSTR *NamesToRemove;
    void *Reserved;
    } 	FABRIC_NAMED_REPARTITION_DESCRIPTION;

typedef struct FABRIC_UNIFORM_INT64_RANGE_PARTITION_SCHEME_DESCRIPTION
    {
    LONG PartitionCount;
    LONGLONG LowKey;
    LONGLONG HighKey;
    void *Reserved;
    } 	FABRIC_UNIFORM_INT64_RANGE_PARTITION_SCHEME_DESCRIPTION;

typedef struct FABRIC_NAMED_PARTITION_SCHEME_DESCRIPTION
    {
    LONG PartitionCount;
    /* [size_is] */ LPCWSTR *Names;
    void *Reserved;
    } 	FABRIC_NAMED_PARTITION_SCHEME_DESCRIPTION;

typedef struct FABRIC_RESOLVED_SERVICE_ENDPOINT
    {
    LPCWSTR Address;
    FABRIC_SERVICE_ENDPOINT_ROLE Role;
    void *Reserved;
    } 	FABRIC_RESOLVED_SERVICE_ENDPOINT;

typedef struct FABRIC_RESOLVED_SERVICE_PARTITION
    {
    FABRIC_SERVICE_PARTITION_INFORMATION Info;
    ULONG EndpointCount;
    /* [size_is] */ FABRIC_RESOLVED_SERVICE_ENDPOINT *Endpoints;
    FABRIC_URI ServiceName;
    void *Reserved;
    } 	FABRIC_RESOLVED_SERVICE_PARTITION;

typedef struct FABRIC_SERVICE_NOTIFICATION
    {
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    ULONG EndpointCount;
    /* [size_is] */ FABRIC_RESOLVED_SERVICE_ENDPOINT *Endpoints;
    FABRIC_SERVICE_PARTITION_INFORMATION *PartitionInfo;
    void *Reserved;
    } 	FABRIC_SERVICE_NOTIFICATION;

typedef struct FABRIC_SERVICE_NOTIFICATION_FILTER_DESCRIPTION
    {
    FABRIC_URI Name;
    FABRIC_SERVICE_NOTIFICATION_FILTER_FLAGS Flags;
    void *Reserved;
    } 	FABRIC_SERVICE_NOTIFICATION_FILTER_DESCRIPTION;

typedef struct FABRIC_APPLICATION_PARAMETER
    {
    LPCWSTR Name;
    LPCWSTR Value;
    void *Reserved;
    } 	FABRIC_APPLICATION_PARAMETER;

typedef struct FABRIC_APPLICATION_PARAMETER FABRIC_STRING_PAIR;

typedef struct FABRIC_APPLICATION_PARAMETER_LIST
    {
    ULONG Count;
    /* [size_is] */ FABRIC_APPLICATION_PARAMETER *Items;
    } 	FABRIC_APPLICATION_PARAMETER_LIST;

typedef struct FABRIC_APPLICATION_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    LPCWSTR ApplicationTypeName;
    LPCWSTR ApplicationTypeVersion;
    const FABRIC_APPLICATION_PARAMETER_LIST *ApplicationParameters;
    void *Reserved;
    } 	FABRIC_APPLICATION_DESCRIPTION;

typedef struct FABRIC_APPLICATION_METRIC_DESCRIPTION
    {
    LPCWSTR Name;
    ULONG NodeReservationCapacity;
    ULONG MaximumNodeCapacity;
    ULONG TotalApplicationCapacity;
    void *Reserved;
    } 	FABRIC_APPLICATION_METRIC_DESCRIPTION;

typedef struct FABRIC_APPLICATION_METRIC_LIST
    {
    ULONG Count;
    /* [size_is] */ FABRIC_APPLICATION_METRIC_DESCRIPTION *Capacities;
    } 	FABRIC_APPLICATION_METRIC_LIST;

typedef struct FABRIC_APPLICATION_CAPACITY_DESCRIPTION
    {
    ULONG MaximumNodes;
    ULONG MinimumNodes;
    const FABRIC_APPLICATION_METRIC_LIST *Metrics;
    void *Reserved;
    } 	FABRIC_APPLICATION_CAPACITY_DESCRIPTION;

typedef struct FABRIC_APPLICATION_DESCRIPTION_EX1
    {
    const FABRIC_APPLICATION_CAPACITY_DESCRIPTION *ApplicationCapacity;
    void *Reserved;
    } 	FABRIC_APPLICATION_DESCRIPTION_EX1;

typedef struct FABRIC_APPLICATION_UPDATE_DESCRIPTION
    {
    DWORD Flags;
    FABRIC_URI ApplicationName;
    BOOLEAN RemoveApplicationCapacity;
    ULONG MaximumNodes;
    ULONG MinimumNodes;
    const FABRIC_APPLICATION_METRIC_LIST *Metrics;
    void *Reserved;
    } 	FABRIC_APPLICATION_UPDATE_DESCRIPTION;

typedef struct FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION
    {
    FABRIC_ROLLING_UPGRADE_MODE RollingUpgradeMode;
    BOOLEAN ForceRestart;
    DWORD UpgradeReplicaSetCheckTimeoutInSeconds;
    void *Reserved;
    } 	FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION;

typedef struct FABRIC_ROLLING_UPGRADE_MONITORING_POLICY
    {
    FABRIC_MONITORED_UPGRADE_FAILURE_ACTION FailureAction;
    DWORD HealthCheckWaitDurationInSeconds;
    DWORD HealthCheckRetryTimeoutInSeconds;
    DWORD UpgradeTimeoutInSeconds;
    DWORD UpgradeDomainTimeoutInSeconds;
    void *Reserved;
    } 	FABRIC_ROLLING_UPGRADE_MONITORING_POLICY;

typedef struct FABRIC_ROLLING_UPGRADE_MONITORING_POLICY_EX1
    {
    DWORD HealthCheckStableDurationInSeconds;
    void *Reserved;
    } 	FABRIC_ROLLING_UPGRADE_MONITORING_POLICY_EX1;

typedef struct FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION_EX1
    {
    const FABRIC_ROLLING_UPGRADE_MONITORING_POLICY *MonitoringPolicy;
    void *HealthPolicy;
    void *Reserved;
    } 	FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION_EX1;

typedef struct FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION_EX2
    {
    BOOLEAN EnableDeltaHealthEvaluation;
    void *UpgradeHealthPolicy;
    void *Reserved;
    } 	FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION_EX2;

typedef struct FABRIC_APPLICATION_UPGRADE_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    LPCWSTR TargetApplicationTypeVersion;
    FABRIC_APPLICATION_PARAMETER_LIST *ApplicationParameters;
    FABRIC_APPLICATION_UPGRADE_KIND UpgradeKind;
    void *UpgradePolicyDescription;
    void *Reserved;
    } 	FABRIC_APPLICATION_UPGRADE_DESCRIPTION;

typedef struct FABRIC_APPLICATION_UPGRADE_UPDATE_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    FABRIC_APPLICATION_UPGRADE_KIND UpgradeKind;
    DWORD UpdateFlags;
    void *UpgradePolicyDescription;
    void *Reserved;
    } 	FABRIC_APPLICATION_UPGRADE_UPDATE_DESCRIPTION;

typedef struct FABRIC_UPGRADE_DESCRIPTION
    {
    LPCWSTR CodeVersion;
    LPCWSTR ConfigVersion;
    FABRIC_UPGRADE_KIND UpgradeKind;
    void *UpgradePolicyDescription;
    void *Reserved;
    } 	FABRIC_UPGRADE_DESCRIPTION;

typedef struct FABRIC_UPGRADE_UPDATE_DESCRIPTION
    {
    FABRIC_UPGRADE_KIND UpgradeKind;
    DWORD UpdateFlags;
    void *UpgradePolicyDescription;
    void *Reserved;
    } 	FABRIC_UPGRADE_UPDATE_DESCRIPTION;

typedef struct FABRIC_SERVICE_GROUP_MEMBER_DESCRIPTION
    {
    LPCWSTR ServiceType;
    FABRIC_URI ServiceName;
    ULONG InitializationDataSize;
    /* [size_is] */ const byte *InitializationData;
    ULONG MetricCount;
    /* [size_is] */ FABRIC_SERVICE_LOAD_METRIC_DESCRIPTION *Metrics;
    void *Reserved;
    } 	FABRIC_SERVICE_GROUP_MEMBER_DESCRIPTION;

typedef struct FABRIC_SERVICE_GROUP_DESCRIPTION
    {
    FABRIC_SERVICE_DESCRIPTION *Description;
    ULONG MemberCount;
    /* [size_is] */ FABRIC_SERVICE_GROUP_MEMBER_DESCRIPTION *MemberDescriptions;
    void *Reserved;
    } 	FABRIC_SERVICE_GROUP_DESCRIPTION;

typedef struct FABRIC_SERVICE_GROUP_UPDATE_DESCRIPTION
    {
    FABRIC_SERVICE_UPDATE_DESCRIPTION *Description;
    void *Reserved;
    } 	FABRIC_SERVICE_GROUP_UPDATE_DESCRIPTION;

typedef struct FABRIC_KEY_VALUE_STORE_ITEM_METADATA
    {
    LPCWSTR Key;
    LONG ValueSizeInBytes;
    FABRIC_SEQUENCE_NUMBER SequenceNumber;
    FILETIME LastModifiedUtc;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_ITEM_METADATA;

typedef struct FABRIC_KEY_VALUE_STORE_ITEM_METADATA_EX1
    {
    FILETIME LastModifiedOnPrimaryUtc;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_ITEM_METADATA_EX1;

typedef struct FABRIC_KEY_VALUE_STORE_ITEM
    {
    const FABRIC_KEY_VALUE_STORE_ITEM_METADATA *Metadata;
    BYTE *Value;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_ITEM;

typedef struct FABRIC_KEY_VALUE_STORE_TRANSACTION_SETTINGS
    {
    ULONG SerializationBlockSize;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_TRANSACTION_SETTINGS;

typedef struct FABRIC_KEY_VALUE_STORE_RESTORE_SETTINGS
    {
    BOOLEAN InlineReopen;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_RESTORE_SETTINGS;

typedef struct FABRIC_KEY_VALUE_STORE_RESTORE_SETTINGS_EX1
    {
    BOOLEAN EnableLsnCheck;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_RESTORE_SETTINGS_EX1;

typedef struct FABRIC_KEY_VALUE_STORE_REPLICA_SETTINGS
    {
    ULONG TransactionDrainTimeoutInSeconds;
    FABRIC_KEY_VALUE_STORE_NOTIFICATION_MODE SecondaryNotificationMode;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_REPLICA_SETTINGS;

typedef struct FABRIC_KEY_VALUE_STORE_REPLICA_SETTINGS_EX1
    {
    BOOLEAN EnableCopyNotificationPrefetch;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_REPLICA_SETTINGS_EX1;

typedef struct FABRIC_KEY_VALUE_STORE_REPLICA_SETTINGS_EX2
    {
    FABRIC_KEY_VALUE_STORE_FULL_COPY_MODE FullCopyMode;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_REPLICA_SETTINGS_EX2;

typedef struct FABRIC_KEY_VALUE_STORE_REPLICA_SETTINGS_EX3
    {
    LONG LogTruncationIntervalInMinutes;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_REPLICA_SETTINGS_EX3;

typedef struct FABRIC_ESE_LOCAL_STORE_SETTINGS
    {
    LPCWSTR DbFolderPath;
    LONG LogFileSizeInKB;
    LONG LogBufferSizeInKB;
    LONG MaxCursors;
    LONG MaxVerPages;
    LONG MaxAsyncCommitDelayInMilliseconds;
    void *Reserved;
    } 	FABRIC_ESE_LOCAL_STORE_SETTINGS;

typedef struct FABRIC_ESE_LOCAL_STORE_SETTINGS_EX1
    {
    BOOLEAN EnableIncrementalBackup;
    void *Reserved;
    } 	FABRIC_ESE_LOCAL_STORE_SETTINGS_EX1;

typedef struct FABRIC_ESE_LOCAL_STORE_SETTINGS_EX2
    {
    LONG MaxCacheSizeInMB;
    void *Reserved;
    } 	FABRIC_ESE_LOCAL_STORE_SETTINGS_EX2;

typedef struct FABRIC_ESE_LOCAL_STORE_SETTINGS_EX3
    {
    LONG MaxDefragFrequencyInMinutes;
    LONG DefragThresholdInMB;
    LONG DatabasePageSizeInKB;
    void *Reserved;
    } 	FABRIC_ESE_LOCAL_STORE_SETTINGS_EX3;

typedef struct FABRIC_ESE_LOCAL_STORE_SETTINGS_EX4
    {
    LONG CompactionThresholdInMB;
    void *Reserved;
    } 	FABRIC_ESE_LOCAL_STORE_SETTINGS_EX4;

typedef struct FABRIC_ESE_LOCAL_STORE_SETTINGS_EX5
    {
    LONG IntrinsicValueThresholdInBytes;
    void *Reserved;
    } 	FABRIC_ESE_LOCAL_STORE_SETTINGS_EX5;

typedef struct FABRIC_ESE_LOCAL_STORE_SETTINGS_EX6
    {
    BOOLEAN EnableOverwriteOnUpdate;
    void *Reserved;
    } 	FABRIC_ESE_LOCAL_STORE_SETTINGS_EX6;

typedef struct FABRIC_NODE_CONTEXT
    {
    LPCWSTR NodeName;
    LPCWSTR NodeType;
    LPCWSTR IPAddressOrFQDN;
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    FABRIC_NODE_ID NodeId;
    void *Reserved;
    } 	FABRIC_NODE_CONTEXT;

typedef struct FABRIC_CLIENT_SETTINGS
    {
    ULONG PartitionLocationCacheLimit;
    ULONG ServiceChangePollIntervalInSeconds;
    ULONG ConnectionInitializationTimeoutInSeconds;
    ULONG KeepAliveIntervalInSeconds;
    ULONG HealthOperationTimeoutInSeconds;
    ULONG HealthReportSendIntervalInSeconds;
    void *Reserved;
    } 	FABRIC_CLIENT_SETTINGS;

typedef struct FABRIC_CLIENT_SETTINGS_EX1
    {
    LPCWSTR ClientFriendlyName;
    ULONG PartitionLocationCacheBucketCount;
    ULONG HealthReportRetrySendIntervalInSeconds;
    void *Reserved;
    } 	FABRIC_CLIENT_SETTINGS_EX1;

typedef struct FABRIC_CLIENT_SETTINGS_EX2
    {
    ULONG NotificationGatewayConnectionTimeoutInSeconds;
    ULONG NotificationCacheUpdateTimeoutInSeconds;
    void *Reserved;
    } 	FABRIC_CLIENT_SETTINGS_EX2;

typedef struct FABRIC_CLIENT_SETTINGS_EX3
    {
    ULONG AuthTokenBufferSize;
    void *Reserved;
    } 	FABRIC_CLIENT_SETTINGS_EX3;

typedef struct FABRIC_CLIENT_SETTINGS_EX4
    {
    ULONG ConnectionIdleTimeoutInSeconds;
    void *Reserved;
    } 	FABRIC_CLIENT_SETTINGS_EX4;

typedef struct FABRIC_QUERY_PAGING_DESCRIPTION
    {
    LPCWSTR ContinuationToken;
    LONG MaxResults;
    void *Reserved;
    } 	FABRIC_QUERY_PAGING_DESCRIPTION;

typedef struct FABRIC_CLUSTER_MANIFEST_QUERY_DESCRIPTION
    {
    LPCWSTR ClusterManifestVersion;
    void *Reserved;
    } 	FABRIC_CLUSTER_MANIFEST_QUERY_DESCRIPTION;

typedef struct FABRIC_NODE_QUERY_DESCRIPTION
    {
    LPCWSTR NodeNameFilter;
    void *Reserved;
    } 	FABRIC_NODE_QUERY_DESCRIPTION;

typedef struct FABRIC_NODE_QUERY_RESULT_ITEM
    {
    LPCWSTR NodeName;
    LPCWSTR IpAddressOrFQDN;
    LPCWSTR NodeType;
    LPCWSTR CodeVersion;
    LPCWSTR ConfigVersion;
    FABRIC_QUERY_NODE_STATUS NodeStatus;
    LONGLONG NodeUpTimeInSeconds;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    BOOLEAN IsSeedNode;
    LPCWSTR UpgradeDomain;
    FABRIC_URI FaultDomain;
    void *Reserved;
    } 	FABRIC_NODE_QUERY_RESULT_ITEM;

typedef struct FABRIC_NODE_QUERY_RESULT_ITEM_EX1
    {
    FABRIC_NODE_ID NodeId;
    void *Reserved;
    } 	FABRIC_NODE_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_NODE_QUERY_RESULT_ITEM_EX2
    {
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    void *Reserved;
    } 	FABRIC_NODE_QUERY_RESULT_ITEM_EX2;

typedef struct FABRIC_NODE_DEACTIVATION_TASK_ID
    {
    LPCWSTR Id;
    FABRIC_NODE_DEACTIVATION_TASK_TYPE Type;
    void *Reserved;
    } 	FABRIC_NODE_DEACTIVATION_TASK_ID;

typedef struct FABRIC_NODE_DEACTIVATION_TASK
    {
    const FABRIC_NODE_DEACTIVATION_TASK_ID *TaskId;
    FABRIC_NODE_DEACTIVATION_INTENT Intent;
    void *Reserved;
    } 	FABRIC_NODE_DEACTIVATION_TASK;

typedef struct FABRIC_NODE_DEACTIVATION_TASK_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_NODE_DEACTIVATION_TASK *Items;
    } 	FABRIC_NODE_DEACTIVATION_TASK_LIST;

typedef struct FABRIC_NODE_DEACTIVATION_QUERY_RESULT_ITEM
    {
    FABRIC_NODE_DEACTIVATION_INTENT EffectiveIntent;
    FABRIC_NODE_DEACTIVATION_STATUS Status;
    const FABRIC_NODE_DEACTIVATION_TASK_LIST *Tasks;
    void *Reserved;
    } 	FABRIC_NODE_DEACTIVATION_QUERY_RESULT_ITEM;

typedef struct FABRIC_SAFETY_CHECK
    {
    FABRIC_SAFETY_CHECK_KIND Kind;
    void *Value;
    } 	FABRIC_SAFETY_CHECK;

typedef struct FABRIC_PARTITION_SAFETY_CHECK
    {
    FABRIC_PARTITION_ID PartitionId;
    void *Reserved;
    } 	FABRIC_PARTITION_SAFETY_CHECK;

typedef struct FABRIC_SEED_NODE_SAFETY_CHECK
    {
    void *Reserved;
    } 	FABRIC_SEED_NODE_SAFETY_CHECK;

typedef struct FABRIC_SAFETY_CHECK_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SAFETY_CHECK *Items;
    } 	FABRIC_SAFETY_CHECK_LIST;

typedef struct FABRIC_NODE_DEACTIVATION_QUERY_RESULT_ITEM_EX1
    {
    const FABRIC_SAFETY_CHECK_LIST *PendingSafetyChecks;
    void *Reserved;
    } 	FABRIC_NODE_DEACTIVATION_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_NODE_QUERY_RESULT_ITEM_EX3
    {
    const FABRIC_NODE_DEACTIVATION_QUERY_RESULT_ITEM *NodeDeactivationInfo;
    void *Reserved;
    } 	FABRIC_NODE_QUERY_RESULT_ITEM_EX3;

typedef struct FABRIC_NODE_QUERY_RESULT_ITEM_EX4
    {
    BOOLEAN IsStopped;
    void *Reserved;
    } 	FABRIC_NODE_QUERY_RESULT_ITEM_EX4;

typedef struct FABRIC_NODE_QUERY_RESULT_ITEM_EX5
    {
    LONGLONG NodeDownTimeInSeconds;
    void *Reserved;
    } 	FABRIC_NODE_QUERY_RESULT_ITEM_EX5;

typedef struct FABRIC_NODE_QUERY_RESULT_ITEM_EX6
    {
    FILETIME NodeUpAt;
    FILETIME NodeDownAt;
    void *Reserved;
    } 	FABRIC_NODE_QUERY_RESULT_ITEM_EX6;

typedef struct FABRIC_NODE_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_NODE_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_NODE_QUERY_RESULT_LIST;

typedef struct FABRIC_APPLICATION_TYPE_QUERY_DESCRIPTION
    {
    LPCWSTR ApplicationTypeNameFilter;
    void *Reserved;
    } 	FABRIC_APPLICATION_TYPE_QUERY_DESCRIPTION;

typedef struct PAGED_FABRIC_APPLICATION_TYPE_QUERY_DESCRIPTION
    {
    LPCWSTR ApplicationTypeNameFilter;
    LONG MaxResults;
    LPCWSTR ContinuationToken;
    BOOLEAN ExcludeApplicationParameters;
    void *Reserved;
    } 	PAGED_FABRIC_APPLICATION_TYPE_QUERY_DESCRIPTION;

typedef struct PAGED_FABRIC_APPLICATION_TYPE_QUERY_DESCRIPTION_EX1
    {
    LPCWSTR ApplicationTypeVersionFilter;
    void *Reserved;
    } 	PAGED_FABRIC_APPLICATION_TYPE_QUERY_DESCRIPTION_EX1;

typedef struct PAGED_FABRIC_APPLICATION_TYPE_QUERY_DESCRIPTION_EX2
    {
    DWORD ApplicationTypeDefinitionKindFilter;
    void *Reserved;
    } 	PAGED_FABRIC_APPLICATION_TYPE_QUERY_DESCRIPTION_EX2;

typedef struct FABRIC_APPLICATION_TYPE_QUERY_RESULT_ITEM
    {
    LPCWSTR ApplicationTypeName;
    LPCWSTR ApplicationTypeVersion;
    FABRIC_APPLICATION_PARAMETER_LIST *DefaultParameters;
    void *Reserved;
    } 	FABRIC_APPLICATION_TYPE_QUERY_RESULT_ITEM;

typedef struct FABRIC_APPLICATION_TYPE_QUERY_RESULT_ITEM_EX1
    {
    FABRIC_APPLICATION_TYPE_STATUS Status;
    LPCWSTR StatusDetails;
    void *Reserved;
    } 	FABRIC_APPLICATION_TYPE_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_APPLICATION_TYPE_QUERY_RESULT_ITEM_EX2
    {
    FABRIC_APPLICATION_TYPE_DEFINITION_KIND ApplicationTypeDefinitionKind;
    void *Reserved;
    } 	FABRIC_APPLICATION_TYPE_QUERY_RESULT_ITEM_EX2;

typedef struct FABRIC_APPLICATION_TYPE_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_APPLICATION_TYPE_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_APPLICATION_TYPE_QUERY_RESULT_LIST;

typedef struct FABRIC_SERVICE_TYPE_QUERY_DESCRIPTION
    {
    LPCWSTR ApplicationTypeName;
    LPCWSTR ApplicationTypeVersion;
    LPCWSTR ServiceTypeNameFilter;
    void *Reserved;
    } 	FABRIC_SERVICE_TYPE_QUERY_DESCRIPTION;

typedef struct FABRIC_SERVICE_GROUP_MEMBER_TYPE_QUERY_DESCRIPTION
    {
    LPCWSTR ApplicationTypeName;
    LPCWSTR ApplicationTypeVersion;
    LPCWSTR ServiceGroupTypeNameFilter;
    void *Reserved;
    } 	FABRIC_SERVICE_GROUP_MEMBER_TYPE_QUERY_DESCRIPTION;

typedef struct FABRIC_SERVICE_TYPE_QUERY_RESULT_ITEM
    {
    FABRIC_SERVICE_TYPE_DESCRIPTION *ServiceTypeDescription;
    LPCWSTR ServiceManifestVersion;
    void *Reserved;
    } 	FABRIC_SERVICE_TYPE_QUERY_RESULT_ITEM;

typedef struct FABRIC_SERVICE_TYPE_QUERY_RESULT_ITEM_EX1
    {
    LPCWSTR ServiceManifestName;
    void *Reserved;
    } 	FABRIC_SERVICE_TYPE_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_SERVICE_TYPE_QUERY_RESULT_ITEM_EX2
    {
    BOOLEAN IsServiceGroup;
    void *Reserved;
    } 	FABRIC_SERVICE_TYPE_QUERY_RESULT_ITEM_EX2;

typedef struct FABRIC_SERVICE_TYPE_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_TYPE_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_SERVICE_TYPE_QUERY_RESULT_LIST;

typedef struct FABRIC_SERVICE_GROUP_MEMBER_TYPE_QUERY_RESULT_ITEM
    {
    FABRIC_SERVICE_GROUP_TYPE_MEMBER_DESCRIPTION_LIST *ServiceGroupMemberTypeDescription;
    LPCWSTR ServiceManifestVersion;
    LPCWSTR ServiceManifestName;
    void *Reserved;
    } 	FABRIC_SERVICE_GROUP_MEMBER_TYPE_QUERY_RESULT_ITEM;

typedef struct FABRIC_SERVICE_GROUP_MEMBER_TYPE_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_GROUP_MEMBER_TYPE_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_SERVICE_GROUP_MEMBER_TYPE_QUERY_RESULT_LIST;

typedef struct FABRIC_APPLICATION_QUERY_DESCRIPTION
    {
    FABRIC_URI ApplicationNameFilter;
    void *Reserved;
    } 	FABRIC_APPLICATION_QUERY_DESCRIPTION;

typedef struct FABRIC_APPLICATION_QUERY_DESCRIPTION_EX1
    {
    LPCWSTR ContinuationToken;
    void *Reserved;
    } 	FABRIC_APPLICATION_QUERY_DESCRIPTION_EX1;

typedef struct FABRIC_APPLICATION_QUERY_DESCRIPTION_EX2
    {
    LPCWSTR ApplicationTypeNameFilter;
    BOOLEAN ExcludeApplicationParameters;
    void *Reserved;
    } 	FABRIC_APPLICATION_QUERY_DESCRIPTION_EX2;

typedef struct FABRIC_APPLICATION_QUERY_DESCRIPTION_EX3
    {
    DWORD ApplicationDefinitionKindFilter;
    void *Reserved;
    } 	FABRIC_APPLICATION_QUERY_DESCRIPTION_EX3;

typedef struct FABRIC_APPLICATION_QUERY_DESCRIPTION_EX4
    {
    LONG MaxResults;
    void *Reserved;
    } 	FABRIC_APPLICATION_QUERY_DESCRIPTION_EX4;

typedef struct FABRIC_APPLICATION_QUERY_RESULT_ITEM
    {
    FABRIC_URI ApplicationName;
    LPCWSTR ApplicationTypeName;
    LPCWSTR ApplicationTypeVersion;
    FABRIC_APPLICATION_STATUS Status;
    FABRIC_HEALTH_STATE HealthState;
    FABRIC_APPLICATION_PARAMETER_LIST *ApplicationParameters;
    void *Reserved;
    } 	FABRIC_APPLICATION_QUERY_RESULT_ITEM;

typedef struct FABRIC_APPLICATION_QUERY_RESULT_ITEM_EX1
    {
    LPCWSTR UpgradeTypeVersion;
    FABRIC_APPLICATION_PARAMETER_LIST *UpgradeParameters;
    void *Reserved;
    } 	FABRIC_APPLICATION_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_APPLICATION_QUERY_RESULT_ITEM_EX2
    {
    FABRIC_APPLICATION_DEFINITION_KIND ApplicationDefinitionKind;
    void *Reserved;
    } 	FABRIC_APPLICATION_QUERY_RESULT_ITEM_EX2;

typedef struct FABRIC_APPLICATION_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_APPLICATION_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_APPLICATION_QUERY_RESULT_LIST;

typedef struct FABRIC_SERVICE_QUERY_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    FABRIC_URI ServiceNameFilter;
    void *Reserved;
    } 	FABRIC_SERVICE_QUERY_DESCRIPTION;

typedef struct FABRIC_SERVICE_QUERY_DESCRIPTION_EX1
    {
    LPCWSTR ContinuationToken;
    void *Reserved;
    } 	FABRIC_SERVICE_QUERY_DESCRIPTION_EX1;

typedef struct FABRIC_SERVICE_QUERY_DESCRIPTION_EX2
    {
    LPCWSTR ServiceTypeNameFilter;
    void *Reserved;
    } 	FABRIC_SERVICE_QUERY_DESCRIPTION_EX2;

typedef struct FABRIC_SYSTEM_SERVICE_QUERY_DESCRIPTION
    {
    FABRIC_URI SystemServiceNameFilter;
    void *Reserved;
    } 	FABRIC_SYSTEM_SERVICE_QUERY_DESCRIPTION;

typedef struct FABRIC_SERVICE_QUERY_RESULT_ITEM
    {
    FABRIC_SERVICE_KIND Kind;
    void *Value;
    } 	FABRIC_SERVICE_QUERY_RESULT_ITEM;

typedef struct FABRIC_SERVICE_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_SERVICE_QUERY_RESULT_LIST;

typedef struct FABRIC_STATELESS_SERVICE_QUERY_RESULT_ITEM
    {
    FABRIC_URI ServiceName;
    LPCWSTR ServiceTypeName;
    LPCWSTR ServiceManifestVersion;
    FABRIC_HEALTH_STATE HealthState;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_QUERY_RESULT_ITEM;

typedef struct FABRIC_STATELESS_SERVICE_QUERY_RESULT_ITEM_EX1
    {
    FABRIC_QUERY_SERVICE_STATUS ServiceStatus;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_STATELESS_SERVICE_QUERY_RESULT_ITEM_EX2
    {
    BOOLEAN IsServiceGroup;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_QUERY_RESULT_ITEM_EX2;

typedef struct FABRIC_STATEFUL_SERVICE_QUERY_RESULT_ITEM
    {
    FABRIC_URI ServiceName;
    LPCWSTR ServiceTypeName;
    LPCWSTR ServiceManifestVersion;
    BOOLEAN HasPersistedState;
    FABRIC_HEALTH_STATE HealthState;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_QUERY_RESULT_ITEM;

typedef struct FABRIC_STATEFUL_SERVICE_QUERY_RESULT_ITEM_EX1
    {
    FABRIC_QUERY_SERVICE_STATUS ServiceStatus;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_STATEFUL_SERVICE_QUERY_RESULT_ITEM_EX2
    {
    BOOLEAN IsServiceGroup;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_QUERY_RESULT_ITEM_EX2;

typedef struct FABRIC_SERVICE_GROUP_MEMBER_QUERY_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    FABRIC_URI ServiceNameFilter;
    void *Reserved;
    } 	FABRIC_SERVICE_GROUP_MEMBER_QUERY_DESCRIPTION;

typedef struct FABRIC_SERVICE_GROUP_MEMBER_MEMBER_QUERY_RESULT_ITEM
    {
    LPCWSTR ServiceType;
    FABRIC_URI ServiceName;
    void *Reserved;
    } 	FABRIC_SERVICE_GROUP_MEMBER_MEMBER_QUERY_RESULT_ITEM;

typedef struct FABRIC_SERVICE_GROUP_MEMBER_MEMBER_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_GROUP_MEMBER_MEMBER_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_SERVICE_GROUP_MEMBER_MEMBER_QUERY_RESULT_LIST;

typedef struct FABRIC_SERVICE_GROUP_MEMBER_QUERY_RESULT_ITEM
    {
    FABRIC_URI ServiceName;
    FABRIC_SERVICE_GROUP_MEMBER_MEMBER_QUERY_RESULT_LIST *Members;
    void *Reserved;
    } 	FABRIC_SERVICE_GROUP_MEMBER_QUERY_RESULT_ITEM;

typedef struct FABRIC_SERVICE_GROUP_MEMBER_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_GROUP_MEMBER_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_SERVICE_GROUP_MEMBER_QUERY_RESULT_LIST;

typedef struct FABRIC_PARTITION_LOAD_INFORMATION_QUERY_DESCRIPTION
    {
    FABRIC_PARTITION_ID PartitionId;
    void *Reserved;
    } 	FABRIC_PARTITION_LOAD_INFORMATION_QUERY_DESCRIPTION;

typedef struct FABRIC_REPLICA_LOAD_INFORMATION_QUERY_DESCRIPTION
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaOrInstanceId;
    void *Reserved;
    } 	FABRIC_REPLICA_LOAD_INFORMATION_QUERY_DESCRIPTION;

typedef struct FABRIC_UNPLACED_REPLICA_INFORMATION_QUERY_DESCRIPTION
    {
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    BOOLEAN OnlyQueryPrimaries;
    void *Reserved;
    } 	FABRIC_UNPLACED_REPLICA_INFORMATION_QUERY_DESCRIPTION;

typedef struct FABRIC_SERVICE_PARTITION_QUERY_DESCRIPTION
    {
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionIdFilter;
    void *Reserved;
    } 	FABRIC_SERVICE_PARTITION_QUERY_DESCRIPTION;

typedef struct FABRIC_NODE_LOAD_INFORMATION_QUERY_DESCRIPTION
    {
    LPCWSTR NodeName;
    void *Reserved;
    } 	FABRIC_NODE_LOAD_INFORMATION_QUERY_DESCRIPTION;

typedef struct FABRIC_APPLICATION_LOAD_INFORMATION_QUERY_DESCRIPTION
    {
    LPCWSTR ApplicationName;
    void *Reserved;
    } 	FABRIC_APPLICATION_LOAD_INFORMATION_QUERY_DESCRIPTION;

typedef struct FABRIC_SERVICE_PARTITION_QUERY_RESULT_ITEM
    {
    FABRIC_SERVICE_KIND Kind;
    void *Value;
    } 	FABRIC_SERVICE_PARTITION_QUERY_RESULT_ITEM;

typedef struct FABRIC_SERVICE_PARTITION_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_PARTITION_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_SERVICE_PARTITION_QUERY_RESULT_LIST;

typedef struct FABRIC_STATELESS_SERVICE_PARTITION_QUERY_RESULT_ITEM
    {
    const FABRIC_SERVICE_PARTITION_INFORMATION *PartitionInformation;
    ULONG InstanceCount;
    FABRIC_HEALTH_STATE HealthState;
    FABRIC_QUERY_SERVICE_PARTITION_STATUS PartitionStatus;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_PARTITION_QUERY_RESULT_ITEM;

typedef struct FABRIC_STATEFUL_SERVICE_PARTITION_QUERY_RESULT_ITEM
    {
    const FABRIC_SERVICE_PARTITION_INFORMATION *PartitionInformation;
    ULONG TargetReplicaSetSize;
    ULONG MinReplicaSetSize;
    FABRIC_HEALTH_STATE HealthState;
    FABRIC_QUERY_SERVICE_PARTITION_STATUS PartitionStatus;
    LONGLONG LastQuorumLossDurationInSeconds;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_PARTITION_QUERY_RESULT_ITEM;

typedef struct FABRIC_STATEFUL_SERVICE_PARTITION_QUERY_RESULT_ITEM_EX1
    {
    FABRIC_EPOCH PrimaryEpoch;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_PARTITION_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_SERVICE_REPLICA_QUERY_DESCRIPTION
    {
    FABRIC_PARTITION_ID PartitionId;
    LONGLONG ReplicaIdOrInstanceIdFilter;
    void *Reserved;
    } 	FABRIC_SERVICE_REPLICA_QUERY_DESCRIPTION;

typedef struct FABRIC_SERVICE_REPLICA_QUERY_DESCRIPTION_EX1
    {
    DWORD ReplicaStatusFilter;
    void *Reserved;
    } 	FABRIC_SERVICE_REPLICA_QUERY_DESCRIPTION_EX1;

typedef struct FABRIC_SERVICE_REPLICA_QUERY_RESULT_ITEM
    {
    FABRIC_SERVICE_KIND Kind;
    void *Value;
    } 	FABRIC_SERVICE_REPLICA_QUERY_RESULT_ITEM;

typedef struct FABRIC_SERVICE_REPLICA_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_REPLICA_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_SERVICE_REPLICA_QUERY_RESULT_LIST;

typedef struct FABRIC_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM
    {
    FABRIC_REPLICA_ID ReplicaId;
    FABRIC_REPLICA_ROLE ReplicaRole;
    FABRIC_QUERY_SERVICE_REPLICA_STATUS ReplicaStatus;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    LPCWSTR ReplicaAddress;
    LPCWSTR NodeName;
    LONGLONG LastInBuildDurationInSeconds;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM;

typedef struct FABRIC_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM
    {
    FABRIC_INSTANCE_ID InstanceId;
    FABRIC_QUERY_SERVICE_REPLICA_STATUS ReplicaStatus;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    LPCWSTR ReplicaAddress;
    LPCWSTR NodeName;
    LONGLONG LastInBuildDurationInSeconds;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM;

typedef struct FABRIC_DEPLOYED_APPLICATION_QUERY_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_URI ApplicationNameFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_QUERY_DESCRIPTION;

typedef struct FABRIC_PAGED_DEPLOYED_APPLICATION_QUERY_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_URI ApplicationNameFilter;
    BOOLEAN IncludeHealthState;
    const FABRIC_QUERY_PAGING_DESCRIPTION *PagingDescription;
    void *Reserved;
    } 	FABRIC_PAGED_DEPLOYED_APPLICATION_QUERY_DESCRIPTION;

typedef struct FABRIC_DEPLOYED_APPLICATION_QUERY_RESULT_ITEM
    {
    FABRIC_URI ApplicationName;
    LPCWSTR ApplicationTypeName;
    FABRIC_DEPLOYMENT_STATUS DeployedApplicationStatus;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_QUERY_RESULT_ITEM;

typedef struct FABRIC_DEPLOYED_APPLICATION_QUERY_RESULT_ITEM_EX
    {
    LPCWSTR WorkDirectory;
    LPCWSTR LogDirectory;
    LPCWSTR TempDirectory;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_QUERY_RESULT_ITEM_EX;

typedef struct FABRIC_DEPLOYED_APPLICATION_QUERY_RESULT_ITEM_EX2
    {
    FABRIC_HEALTH_STATE HealthState;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_QUERY_RESULT_ITEM_EX2;

typedef struct FABRIC_DEPLOYED_APPLICATION_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DEPLOYED_APPLICATION_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_DEPLOYED_APPLICATION_QUERY_RESULT_LIST;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_QUERY_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_URI ApplicationName;
    LPCWSTR ServiceManifestNameFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_QUERY_DESCRIPTION;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_QUERY_RESULT_ITEM
    {
    LPCWSTR ServiceManifestName;
    LPCWSTR ServiceManifestVersion;
    FABRIC_DEPLOYMENT_STATUS DeployedServicePackageStatus;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_QUERY_RESULT_ITEM;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_QUERY_RESULT_ITEM_EX1
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DEPLOYED_SERVICE_PACKAGE_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_QUERY_RESULT_LIST;

typedef struct FABRIC_DEPLOYED_SERVICE_TYPE_QUERY_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_URI ApplicationName;
    LPCWSTR ServiceManifestNameFilter;
    LPCWSTR ServiceTypeNameFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_TYPE_QUERY_DESCRIPTION;

typedef struct FABRIC_DEPLOYED_SERVICE_TYPE_QUERY_RESULT_ITEM
    {
    LPCWSTR ServiceTypeName;
    LPCWSTR CodePackageName;
    LPCWSTR ServiceManifestName;
    FABRIC_SERVICE_TYPE_REGISTRATION_STATUS Status;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_TYPE_QUERY_RESULT_ITEM;

typedef struct FABRIC_DEPLOYED_SERVICE_TYPE_QUERY_RESULT_ITEM_EX1
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_TYPE_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_DEPLOYED_SERVICE_TYPE_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DEPLOYED_SERVICE_TYPE_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_DEPLOYED_SERVICE_TYPE_QUERY_RESULT_LIST;

typedef struct FABRIC_CODE_PACKAGE_ENTRY_POINT_STATISTICS
    {
    DWORD LastExitCode;
    FILETIME LastActivationUtc;
    FILETIME LastExitUtc;
    FILETIME LastSuccessfulActivationUtc;
    FILETIME LastSuccessfulExitUtc;
    ULONG ActivationCount;
    ULONG ActivationFailureCount;
    ULONG ContinuousActivationFailureCount;
    ULONG ExitCount;
    ULONG ExitFailureCount;
    ULONG ContinuousExitFailureCount;
    void *Reserved;
    } 	FABRIC_CODE_PACKAGE_ENTRY_POINT_STATISTICS;

typedef struct FABRIC_CODE_PACKAGE_ENTRY_POINT
    {
    LPCWSTR EntryPointLocation;
    LONGLONG ProcessId;
    LPCWSTR RunAsUserName;
    FABRIC_ENTRY_POINT_STATUS EntryPointStatus;
    FILETIME NextActivationUtc;
    const FABRIC_CODE_PACKAGE_ENTRY_POINT_STATISTICS *Statistics;
    void *Reserved;
    } 	FABRIC_CODE_PACKAGE_ENTRY_POINT;

typedef struct FABRIC_CODE_PACKAGE_ENTRY_POINT_EX1
    {
    FABRIC_INSTANCE_ID CodePackageInstanceId;
    void *Reserved;
    } 	FABRIC_CODE_PACKAGE_ENTRY_POINT_EX1;

typedef struct FABRIC_DEPLOYED_CODE_PACKAGE_QUERY_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_URI ApplicationName;
    LPCWSTR ServiceManifestNameFilter;
    LPCWSTR CodePackageNameFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_CODE_PACKAGE_QUERY_DESCRIPTION;

typedef struct FABRIC_DEPLOYED_CODE_PACKAGE_QUERY_RESULT_ITEM
    {
    LPCWSTR CodePackageName;
    LPCWSTR CodePackageVersion;
    LPCWSTR ServiceManifestName;
    ULONG RunFrequencyInterval;
    FABRIC_DEPLOYMENT_STATUS DeployedCodePackageStatus;
    const FABRIC_CODE_PACKAGE_ENTRY_POINT *SetupEntryPoint;
    const FABRIC_CODE_PACKAGE_ENTRY_POINT *EntryPoint;
    void *Reserved;
    } 	FABRIC_DEPLOYED_CODE_PACKAGE_QUERY_RESULT_ITEM;

typedef struct FABRIC_DEPLOYED_CODE_PACKAGE_QUERY_RESULT_ITEM_EX1
    {
    LPCWSTR ServicePackageActivationId;
    FABRIC_HOST_TYPE HostType;
    FABRIC_HOST_ISOLATION_MODE HostIsolationMode;
    void *Reserved;
    } 	FABRIC_DEPLOYED_CODE_PACKAGE_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_DEPLOYED_CODE_PACKAGE_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DEPLOYED_CODE_PACKAGE_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_DEPLOYED_CODE_PACKAGE_QUERY_RESULT_LIST;

typedef struct FABRIC_DEPLOYED_SERVICE_REPLICA_QUERY_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_URI ApplicationName;
    LPCWSTR ServiceManifestNameFilter;
    FABRIC_PARTITION_ID PartitionIdFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_REPLICA_QUERY_DESCRIPTION;

typedef struct FABRIC_RECONFIGURATION_INFORMATION_QUERY_RESULT
    {
    FABRIC_REPLICA_ROLE PreviousConfigurationRole;
    FABRIC_RECONFIGURATION_PHASE ReconfigurationPhase;
    FABRIC_RECONFIGURATION_TYPE ReconfigurationType;
    FILETIME ReconfigurationStartTimeUtc;
    void *Reserved;
    } 	FABRIC_RECONFIGURATION_INFORMATION_QUERY_RESULT;

typedef struct FABRIC_DEPLOYED_SERVICE_REPLICA_QUERY_RESULT_ITEM
    {
    FABRIC_SERVICE_KIND Kind;
    void *Value;
    } 	FABRIC_DEPLOYED_SERVICE_REPLICA_QUERY_RESULT_ITEM;

typedef struct FABRIC_DEPLOYED_SERVICE_REPLICA_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DEPLOYED_SERVICE_REPLICA_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_DEPLOYED_SERVICE_REPLICA_QUERY_RESULT_LIST;

typedef struct FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM
    {
    FABRIC_URI ServiceName;
    LPCWSTR ServiceTypeName;
    LPCWSTR ServiceManifestVersion;
    LPCWSTR CodePackageName;
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaId;
    FABRIC_REPLICA_ROLE ReplicaRole;
    FABRIC_QUERY_SERVICE_REPLICA_STATUS ReplicaStatus;
    LPCWSTR Address;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM;

typedef struct FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM_EX1
    {
    LPCWSTR ServiceManifestName;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM_EX2
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM_EX2;

typedef struct FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM_EX3
    {
    FABRIC_HOST_PROCESS_ID HostProcessId;
    FABRIC_RECONFIGURATION_INFORMATION_QUERY_RESULT *ReconfigurationInformation;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM_EX3;

typedef struct FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM
    {
    FABRIC_URI ServiceName;
    LPCWSTR ServiceTypeName;
    LPCWSTR ServiceManifestVersion;
    LPCWSTR CodePackageName;
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_INSTANCE_ID InstanceId;
    FABRIC_QUERY_SERVICE_REPLICA_STATUS ReplicaStatus;
    LPCWSTR Address;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM;

typedef struct FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM_EX1
    {
    LPCWSTR ServiceManifestName;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM_EX2
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM_EX2;

typedef struct FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM_EX3
    {
    FABRIC_HOST_PROCESS_ID HostProcessId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM_EX3;

typedef struct FABRIC_LOAD_METRIC_REPORT
    {
    LPCWSTR Name;
    ULONG Value;
    FILETIME LastReportedUtc;
    void *Reserved;
    } 	FABRIC_LOAD_METRIC_REPORT;

typedef struct FABRIC_LOAD_METRIC_REPORT_LIST
    {
    ULONG Count;
    /* [size_is] */ FABRIC_LOAD_METRIC_REPORT *Items;
    } 	FABRIC_LOAD_METRIC_REPORT_LIST;

typedef struct FABRIC_UNPLACED_REPLICA_INFORMATION_LIST
    {
    ULONG Count;
    /* [size_is] */ LPCWSTR *Items;
    } 	FABRIC_UNPLACED_REPLICA_INFORMATION_LIST;

typedef struct FABRIC_DEPLOYED_SERVICE_REPLICA_DETAIL_QUERY_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_REPLICA_DETAIL_QUERY_DESCRIPTION;

typedef struct FABRIC_DEPLOYED_SERVICE_REPLICA_DETAIL_QUERY_RESULT_ITEM
    {
    FABRIC_SERVICE_KIND Kind;
    void *Value;
    } 	FABRIC_DEPLOYED_SERVICE_REPLICA_DETAIL_QUERY_RESULT_ITEM;

typedef struct FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_DETAIL_QUERY_RESULT_ITEM
    {
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_INSTANCE_ID InstanceId;
    FABRIC_QUERY_SERVICE_OPERATION_NAME CurrentServiceOperation;
    FILETIME CurrentServiceOperationStartTimeUtc;
    FABRIC_LOAD_METRIC_REPORT_LIST *ReportedLoad;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_DETAIL_QUERY_RESULT_ITEM;

typedef struct FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_DETAIL_QUERY_RESULT_ITEM_EX1
    {
    FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_QUERY_RESULT_ITEM *DeployedServiceReplica;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATELESS_SERVICE_INSTANCE_DETAIL_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_REMOTE_REPLICATOR_STATUS
    {
    FABRIC_REPLICA_ID ReplicaId;
    FILETIME LastAcknowledgementProcessedTimeUtc;
    FABRIC_SEQUENCE_NUMBER LastReceivedReplicationSequenceNumber;
    FABRIC_SEQUENCE_NUMBER LastAppliedReplicationSequenceNumber;
    BOOLEAN IsInBuild;
    FABRIC_SEQUENCE_NUMBER LastReceivedCopySequenceNumber;
    FABRIC_SEQUENCE_NUMBER LastAppliedCopySequenceNumber;
    void *Reserved;
    } 	FABRIC_REMOTE_REPLICATOR_STATUS;

typedef struct FABRIC_REMOTE_REPLICATOR_ACKNOWLEDGEMENT_DETAIL
    {
    LONGLONG AverageReceiveDurationMilliseconds;
    LONGLONG AverageApplyDurationMilliseconds;
    FABRIC_SEQUENCE_NUMBER NotReceivedCount;
    FABRIC_SEQUENCE_NUMBER ReceivedAndNotAppliedCount;
    void *Reserved;
    } 	FABRIC_REMOTE_REPLICATOR_ACKNOWLEDGEMENT_DETAIL;

typedef struct FABRIC_REMOTE_REPLICATOR_ACKNOWLEDGEMENT_STATUS
    {
    FABRIC_REMOTE_REPLICATOR_ACKNOWLEDGEMENT_DETAIL *CopyStreamAcknowledgementDetails;
    FABRIC_REMOTE_REPLICATOR_ACKNOWLEDGEMENT_DETAIL *ReplicationStreamAcknowledgementDetails;
    void *Reserved;
    } 	FABRIC_REMOTE_REPLICATOR_ACKNOWLEDGEMENT_STATUS;

typedef struct FABRIC_REMOTE_REPLICATOR_STATUS_LIST
    {
    ULONG Count;
    /* [size_is] */ FABRIC_REMOTE_REPLICATOR_STATUS *Items;
    } 	FABRIC_REMOTE_REPLICATOR_STATUS_LIST;

typedef struct FABRIC_REPLICATOR_QUEUE_STATUS
    {
    DWORD QueueUtilizationPercentage;
    LONGLONG QueueMemorySize;
    FABRIC_SEQUENCE_NUMBER FirstSequenceNumber;
    FABRIC_SEQUENCE_NUMBER CompletedSequenceNumber;
    FABRIC_SEQUENCE_NUMBER CommittedSequenceNumber;
    FABRIC_SEQUENCE_NUMBER LastSequenceNumber;
    void *Reserved;
    } 	FABRIC_REPLICATOR_QUEUE_STATUS;

typedef struct FABRIC_PRIMARY_REPLICATOR_STATUS_QUERY_RESULT
    {
    FABRIC_REPLICATOR_QUEUE_STATUS *ReplicationQueueStatus;
    FABRIC_REMOTE_REPLICATOR_STATUS_LIST *RemoteReplicators;
    void *Reserved;
    } 	FABRIC_PRIMARY_REPLICATOR_STATUS_QUERY_RESULT;

typedef struct FABRIC_SECONDARY_REPLICATOR_STATUS_QUERY_RESULT
    {
    FABRIC_REPLICATOR_QUEUE_STATUS *ReplicationQueueStatus;
    FILETIME LastReplicationOperationReceivedTimeUtc;
    BOOLEAN IsInBuild;
    FABRIC_REPLICATOR_QUEUE_STATUS *CopyQueueStatus;
    FILETIME LastCopyOperationReceivedTimeUtc;
    FILETIME LastAcknowledgementSentTimeUtc;
    void *Reserved;
    } 	FABRIC_SECONDARY_REPLICATOR_STATUS_QUERY_RESULT;

typedef struct FABRIC_REPLICATOR_STATUS_QUERY_RESULT
    {
    FABRIC_REPLICA_ROLE Role;
    void *Value;
    } 	FABRIC_REPLICATOR_STATUS_QUERY_RESULT;

typedef struct FABRIC_REPLICA_STATUS_QUERY_RESULT
    {
    FABRIC_SERVICE_REPLICA_KIND Kind;
    void *Value;
    void *Reserved;
    } 	FABRIC_REPLICA_STATUS_QUERY_RESULT;

typedef struct FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_DETAIL_QUERY_RESULT_ITEM
    {
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaId;
    FABRIC_QUERY_SERVICE_OPERATION_NAME CurrentServiceOperation;
    FILETIME CurrentServiceOperationStartTimeUtc;
    FABRIC_QUERY_REPLICATOR_OPERATION_NAME CurrentReplicatorOperation;
    FABRIC_SERVICE_PARTITION_ACCESS_STATUS ReadStatus;
    FABRIC_SERVICE_PARTITION_ACCESS_STATUS WriteStatus;
    FABRIC_LOAD_METRIC_REPORT_LIST *ReportedLoad;
    FABRIC_REPLICATOR_STATUS_QUERY_RESULT *ReplicatorStatus;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_DETAIL_QUERY_RESULT_ITEM;

typedef struct FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_DETAIL_QUERY_RESULT_ITEM_EX1
    {
    FABRIC_REPLICA_STATUS_QUERY_RESULT *ReplicaStatus;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_DETAIL_QUERY_RESULT_ITEM_EX1;

typedef struct FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_DETAIL_QUERY_RESULT_ITEM_EX2
    {
    FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_QUERY_RESULT_ITEM *DeployedServiceReplica;
    void *Reserved;
    } 	FABRIC_DEPLOYED_STATEFUL_SERVICE_REPLICA_DETAIL_QUERY_RESULT_ITEM_EX2;

typedef struct FABRIC_KEY_VALUE_STORE_STATUS_QUERY_RESULT
    {
    LONGLONG DatabaseRowCountEstimate;
    LONGLONG DatabaseLogicalSizeEstimate;
    LPCWSTR CopyNotificationCurrentKeyFilter;
    LONGLONG CopyNotificationCurrentProgress;
    LPCWSTR StatusDetails;
    void *Reserved;
    } 	FABRIC_KEY_VALUE_STORE_STATUS_QUERY_RESULT;

typedef struct FABRIC_PROVISIONED_CODE_VERSION_QUERY_DESCRIPTION
    {
    LPCWSTR CodeVersionFilter;
    void *Reserved;
    } 	FABRIC_PROVISIONED_CODE_VERSION_QUERY_DESCRIPTION;

typedef struct FABRIC_PROVISIONED_CODE_VERSION_QUERY_RESULT_ITEM
    {
    LPCWSTR CodeVersion;
    void *Reserved;
    } 	FABRIC_PROVISIONED_CODE_VERSION_QUERY_RESULT_ITEM;

typedef struct FABRIC_PROVISIONED_CODE_VERSION_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_PROVISIONED_CODE_VERSION_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_PROVISIONED_CODE_VERSION_QUERY_RESULT_LIST;

typedef struct FABRIC_PROVISIONED_CONFIG_VERSION_QUERY_DESCRIPTION
    {
    LPCWSTR ConfigVersionFilter;
    void *Reserved;
    } 	FABRIC_PROVISIONED_CONFIG_VERSION_QUERY_DESCRIPTION;

typedef struct FABRIC_PROVISIONED_CONFIG_VERSION_QUERY_RESULT_ITEM
    {
    LPCWSTR ConfigVersion;
    void *Reserved;
    } 	FABRIC_PROVISIONED_CONFIG_VERSION_QUERY_RESULT_ITEM;

typedef struct FABRIC_PROVISIONED_CONFIG_VERSION_QUERY_RESULT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_PROVISIONED_CONFIG_VERSION_QUERY_RESULT_ITEM *Items;
    } 	FABRIC_PROVISIONED_CONFIG_VERSION_QUERY_RESULT_LIST;

typedef struct FABRIC_SERVICE_NAME_QUERY_DESCRIPTION
    {
    FABRIC_PARTITION_ID PartitionId;
    void *Reserved;
    } 	FABRIC_SERVICE_NAME_QUERY_DESCRIPTION;

typedef struct FABRIC_SERVICE_NAME_QUERY_RESULT
    {
    FABRIC_URI ServiceName;
    void *Reserved;
    } 	FABRIC_SERVICE_NAME_QUERY_RESULT;

typedef struct FABRIC_APPLICATION_NAME_QUERY_DESCRIPTION
    {
    FABRIC_URI ServiceName;
    void *Reserved;
    } 	FABRIC_APPLICATION_NAME_QUERY_DESCRIPTION;

typedef struct FABRIC_APPLICATION_NAME_QUERY_RESULT
    {
    FABRIC_URI ApplicationName;
    void *Reserved;
    } 	FABRIC_APPLICATION_NAME_QUERY_RESULT;

typedef struct FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_URI ApplicationName;
    LPCWSTR ServiceManifestName;
    LPCWSTR CodePackageName;
    FABRIC_INSTANCE_ID CodePackageInstanceId;
    void *Reserved;
    } 	FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION;

typedef struct FABRIC_RESTART_NODE_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    void *Reserved;
    } 	FABRIC_RESTART_NODE_DESCRIPTION;

typedef struct FABRIC_RESTART_NODE_DESCRIPTION_USING_NODE_NAME
    {
    LPCWSTR NodeName;
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    BOOLEAN ShouldCreateFabricDump;
    void *Reserved;
    } 	FABRIC_RESTART_NODE_DESCRIPTION_USING_NODE_NAME;

typedef struct FABRIC_RESTART_NODE_DESCRIPTION2
    {
    FABRIC_RESTART_NODE_DESCRIPTION_KIND Kind;
    void *Value;
    } 	FABRIC_RESTART_NODE_DESCRIPTION2;

typedef struct FABRIC_RESTART_NODE_DESCRIPTION_EX1
    {
    BOOLEAN CreateFabricDump;
    void *Reserved;
    } 	FABRIC_RESTART_NODE_DESCRIPTION_EX1;

typedef struct FABRIC_STOP_NODE_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    void *Reserved;
    } 	FABRIC_STOP_NODE_DESCRIPTION;

typedef struct FABRIC_START_NODE_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    LPCWSTR IPAddressOrFQDN;
    ULONG ClusterConnectionPort;
    void *Reserved;
    } 	FABRIC_START_NODE_DESCRIPTION;

typedef struct FABRIC_START_NODE_DESCRIPTION2
    {
    FABRIC_START_NODE_DESCRIPTION_KIND Kind;
    void *Value;
    } 	FABRIC_START_NODE_DESCRIPTION2;

typedef struct FABRIC_START_NODE_DESCRIPTION_USING_NODE_NAME
    {
    LPCWSTR NodeName;
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    LPCWSTR IPAddressOrFQDN;
    ULONG ClusterConnectionPort;
    void *Reserved;
    } 	FABRIC_START_NODE_DESCRIPTION_USING_NODE_NAME;

typedef struct FABRIC_STOP_NODE_DESCRIPTION2
    {
    FABRIC_STOP_NODE_DESCRIPTION_KIND Kind;
    void *Value;
    } 	FABRIC_STOP_NODE_DESCRIPTION2;

typedef struct FABRIC_STOP_NODE_DESCRIPTION_USING_NODE_NAME
    {
    LPCWSTR NodeName;
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    void *Reserved;
    } 	FABRIC_STOP_NODE_DESCRIPTION_USING_NODE_NAME;

typedef struct FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION2
    {
    FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION_KIND Kind;
    void *Value;
    } 	FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION2;

typedef struct FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION_USING_NODE_NAME
    {
    LPCWSTR NodeName;
    FABRIC_URI ApplicationName;
    LPCWSTR ServiceManifestName;
    LPCWSTR CodePackageName;
    FABRIC_INSTANCE_ID CodePackageInstanceId;
    void *Reserved;
    } 	FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION_USING_NODE_NAME;

typedef struct FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION_USING_NODE_NAME_EX1
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_RESTART_DEPLOYED_CODE_PACKAGE_DESCRIPTION_USING_NODE_NAME_EX1;

typedef struct FABRIC_DEPLOYED_CODE_PACKAGE_RESULT
    {
    LPCWSTR NodeName;
    FABRIC_URI ApplicationName;
    LPCWSTR ServiceManifestName;
    LPCWSTR CodePackageName;
    FABRIC_INSTANCE_ID CodePackageInstanceId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_CODE_PACKAGE_RESULT;

typedef struct FABRIC_DEPLOYED_CODE_PACKAGE_RESULT_EX1
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_CODE_PACKAGE_RESULT_EX1;

typedef struct FABRIC_MOVE_PRIMARY_DESCRIPTION2
    {
    FABRIC_MOVE_PRIMARY_DESCRIPTION_KIND Kind;
    void *Value;
    } 	FABRIC_MOVE_PRIMARY_DESCRIPTION2;

typedef struct FABRIC_MOVE_PRIMARY_DESCRIPTION_USING_NODE_NAME
    {
    LPCWSTR NodeName;
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    BOOLEAN IgnoreConstraints;
    void *Reserved;
    } 	FABRIC_MOVE_PRIMARY_DESCRIPTION_USING_NODE_NAME;

typedef struct FABRIC_MOVE_PRIMARY_RESULT
    {
    LPCWSTR NodeName;
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    void *Reserved;
    } 	FABRIC_MOVE_PRIMARY_RESULT;

typedef struct FABRIC_MOVE_SECONDARY_DESCRIPTION2
    {
    FABRIC_MOVE_SECONDARY_DESCRIPTION_KIND Kind;
    void *Value;
    } 	FABRIC_MOVE_SECONDARY_DESCRIPTION2;

typedef struct FABRIC_MOVE_SECONDARY_DESCRIPTION_USING_NODE_NAME
    {
    LPCWSTR CurrentNodeName;
    LPCWSTR NewNodeName;
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    BOOLEAN IgnoreConstraints;
    void *Reserved;
    } 	FABRIC_MOVE_SECONDARY_DESCRIPTION_USING_NODE_NAME;

typedef struct FABRIC_MOVE_SECONDARY_RESULT
    {
    LPCWSTR CurrentNodeName;
    LPCWSTR NewNodeName;
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    void *Reserved;
    } 	FABRIC_MOVE_SECONDARY_RESULT;

typedef struct FABRIC_RESTART_REPLICA_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaOrInstanceId;
    void *Reserved;
    } 	FABRIC_RESTART_REPLICA_DESCRIPTION;

typedef struct FABRIC_REMOVE_REPLICA_DESCRIPTION
    {
    LPCWSTR NodeName;
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaOrInstanceId;
    void *Reserved;
    } 	FABRIC_REMOVE_REPLICA_DESCRIPTION;

typedef struct FABRIC_REMOVE_REPLICA_DESCRIPTION_EX1
    {
    BOOLEAN ForceRemove;
    void *Reserved;
    } 	FABRIC_REMOVE_REPLICA_DESCRIPTION_EX1;

typedef struct FABRIC_HEALTH_REPORT_SEND_OPTIONS
    {
    BOOLEAN Immediate;
    void *Reserved;
    } 	FABRIC_HEALTH_REPORT_SEND_OPTIONS;

typedef struct FABRIC_HEALTH_INFORMATION
    {
    LPCWSTR SourceId;
    LPCWSTR Property;
    DWORD TimeToLiveSeconds;
    FABRIC_HEALTH_STATE State;
    LPCWSTR Description;
    FABRIC_SEQUENCE_NUMBER SequenceNumber;
    BOOLEAN RemoveWhenExpired;
    void *Reserved;
    } 	FABRIC_HEALTH_INFORMATION;

typedef struct FABRIC_HEALTH_REPORT
    {
    FABRIC_HEALTH_REPORT_KIND Kind;
    void *Value;
    } 	FABRIC_HEALTH_REPORT;

typedef struct FABRIC_CLUSTER_HEALTH_REPORT
    {
    const FABRIC_HEALTH_INFORMATION *HealthInformation;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH_REPORT;

typedef struct FABRIC_STATELESS_SERVICE_INSTANCE_HEALTH_REPORT
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_INSTANCE_ID InstanceId;
    const FABRIC_HEALTH_INFORMATION *HealthInformation;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_INSTANCE_HEALTH_REPORT;

typedef struct FABRIC_STATEFUL_SERVICE_REPLICA_HEALTH_REPORT
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaId;
    const FABRIC_HEALTH_INFORMATION *HealthInformation;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_REPLICA_HEALTH_REPORT;

typedef struct FABRIC_PARTITION_HEALTH_REPORT
    {
    FABRIC_PARTITION_ID PartitionId;
    const FABRIC_HEALTH_INFORMATION *HealthInformation;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_REPORT;

typedef struct FABRIC_NODE_HEALTH_REPORT
    {
    LPCWSTR NodeName;
    const FABRIC_HEALTH_INFORMATION *HealthInformation;
    void *Reserved;
    } 	FABRIC_NODE_HEALTH_REPORT;

typedef struct FABRIC_APPLICATION_HEALTH_REPORT
    {
    FABRIC_URI ApplicationName;
    const FABRIC_HEALTH_INFORMATION *HealthInformation;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_REPORT;

typedef struct FABRIC_SERVICE_HEALTH_REPORT
    {
    FABRIC_URI ServiceName;
    const FABRIC_HEALTH_INFORMATION *HealthInformation;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_REPORT;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_REPORT
    {
    FABRIC_URI ApplicationName;
    LPCWSTR ServiceManifestName;
    LPCWSTR NodeName;
    const FABRIC_HEALTH_INFORMATION *HealthInformation;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_REPORT;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_REPORT_EX1
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_REPORT_EX1;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_REPORT
    {
    FABRIC_URI ApplicationName;
    LPCWSTR NodeName;
    const FABRIC_HEALTH_INFORMATION *HealthInformation;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_REPORT;

typedef struct FABRIC_SERVICE_TYPE_HEALTH_POLICY
    {
    BYTE MaxPercentUnhealthyServices;
    BYTE MaxPercentUnhealthyPartitionsPerService;
    BYTE MaxPercentUnhealthyReplicasPerPartition;
    void *Reserved;
    } 	FABRIC_SERVICE_TYPE_HEALTH_POLICY;

typedef struct FABRIC_SERVICE_TYPE_HEALTH_POLICY_MAP_ITEM
    {
    LPCWSTR ServiceTypeName;
    const FABRIC_SERVICE_TYPE_HEALTH_POLICY *ServiceTypeHealthPolicy;
    } 	FABRIC_SERVICE_TYPE_HEALTH_POLICY_MAP_ITEM;

typedef struct FABRIC_SERVICE_TYPE_HEALTH_POLICY_MAP
    {
    ULONG Count;
    /* [size_is] */ FABRIC_SERVICE_TYPE_HEALTH_POLICY_MAP_ITEM *Items;
    } 	FABRIC_SERVICE_TYPE_HEALTH_POLICY_MAP;

typedef struct FABRIC_APPLICATION_HEALTH_POLICY
    {
    BOOLEAN ConsiderWarningAsError;
    BYTE MaxPercentUnhealthyDeployedApplications;
    const FABRIC_SERVICE_TYPE_HEALTH_POLICY *DefaultServiceTypeHealthPolicy;
    const FABRIC_SERVICE_TYPE_HEALTH_POLICY_MAP *ServiceTypeHealthPolicyMap;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_POLICY;

typedef struct FABRIC_APPLICATION_HEALTH_POLICY_MAP_ITEM
    {
    FABRIC_URI ApplicationName;
    const FABRIC_APPLICATION_HEALTH_POLICY *HealthPolicy;
    } 	FABRIC_APPLICATION_HEALTH_POLICY_MAP_ITEM;

typedef struct FABRIC_APPLICATION_HEALTH_POLICY_MAP
    {
    ULONG Count;
    /* [size_is] */ FABRIC_APPLICATION_HEALTH_POLICY_MAP_ITEM *Items;
    } 	FABRIC_APPLICATION_HEALTH_POLICY_MAP;

typedef struct FABRIC_CLUSTER_HEALTH_POLICY
    {
    BOOLEAN ConsiderWarningAsError;
    BYTE MaxPercentUnhealthyNodes;
    BYTE MaxPercentUnhealthyApplications;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH_POLICY;

typedef struct FABRIC_CLUSTER_UPGRADE_HEALTH_POLICY
    {
    BYTE MaxPercentDeltaUnhealthyNodes;
    BYTE MaxPercentUpgradeDomainDeltaUnhealthyNodes;
    void *Reserved;
    } 	FABRIC_CLUSTER_UPGRADE_HEALTH_POLICY;

typedef struct FABRIC_LOAD_METRIC_INFORMATION
    {
    LPCWSTR Name;
    BOOLEAN IsBalancedBefore;
    BOOLEAN IsBalancedAfter;
    DOUBLE DeviationBefore;
    DOUBLE DeviationAfter;
    DOUBLE BalancingThreshold;
    LPCWSTR Action;
    void *Reserved;
    } 	FABRIC_LOAD_METRIC_INFORMATION;

typedef struct FABRIC_LOAD_METRIC_INFORMATION_EX1
    {
    ULONG ActivityThreshold;
    LONGLONG ClusterCapacity;
    LONGLONG ClusterLoad;
    void *Reserved;
    } 	FABRIC_LOAD_METRIC_INFORMATION_EX1;

typedef struct FABRIC_LOAD_METRIC_INFORMATION_EX2
    {
    LONGLONG RemainingUnbufferedCapacity;
    DOUBLE NodeBufferPercentage;
    LONGLONG BufferedCapacity;
    LONGLONG RemainingBufferedCapacity;
    BOOLEAN IsClusterCapacityViolation;
    LONGLONG MinNodeLoadValue;
    FABRIC_NODE_ID MinNodeLoadNodeId;
    LONGLONG MaxNodeLoadValue;
    FABRIC_NODE_ID MaxNodeLoadNodeId;
    void *Reserved;
    } 	FABRIC_LOAD_METRIC_INFORMATION_EX2;

typedef struct FABRIC_LOAD_METRIC_INFORMATION_EX3
    {
    DOUBLE CurrentClusterLoad;
    DOUBLE BufferedClusterCapacityRemaining;
    DOUBLE ClusterCapacityRemaining;
    DOUBLE MaximumNodeLoad;
    DOUBLE MinimumNodeLoad;
    void *Reserved;
    } 	FABRIC_LOAD_METRIC_INFORMATION_EX3;

typedef struct FABRIC_LOAD_METRIC_INFORMATION_LIST
    {
    ULONG Count;
    /* [size_is] */ FABRIC_LOAD_METRIC_INFORMATION *Items;
    } 	FABRIC_LOAD_METRIC_INFORMATION_LIST;

typedef struct FABRIC_CLUSTER_LOAD_INFORMATION
    {
    FILETIME LastBalancingStartTimeUtc;
    FILETIME LastBalancingEndTimeUtc;
    const FABRIC_LOAD_METRIC_INFORMATION_LIST *LoadMetricInformation;
    void *Reserved;
    } 	FABRIC_CLUSTER_LOAD_INFORMATION;

typedef struct FABRIC_PARTITION_LOAD_INFORMATION
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_LOAD_METRIC_REPORT_LIST *PrimaryLoadMetricReports;
    FABRIC_LOAD_METRIC_REPORT_LIST *SecondaryLoadMetricReports;
    void *Reserved;
    } 	FABRIC_PARTITION_LOAD_INFORMATION;

typedef struct FABRIC_REPLICA_LOAD_INFORMATION
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaOrInstanceId;
    FABRIC_LOAD_METRIC_REPORT_LIST *LoadMetricReports;
    void *Reserved;
    } 	FABRIC_REPLICA_LOAD_INFORMATION;

typedef struct FABRIC_UNPLACED_REPLICA_INFORMATION
    {
    FABRIC_URI ServiceName;
    FABRIC_PARTITION_ID PartitionId;
    const FABRIC_STRING_LIST *UnplacedReplicaReasons;
    void *Reserved;
    } 	FABRIC_UNPLACED_REPLICA_INFORMATION;

typedef struct FABRIC_NODE_LOAD_METRIC_INFORMATION
    {
    LPCWSTR Name;
    LONGLONG NodeCapacity;
    LONGLONG NodeLoad;
    LONGLONG NodeRemainingCapacity;
    BOOLEAN IsCapacityViolation;
    void *Reserved;
    } 	FABRIC_NODE_LOAD_METRIC_INFORMATION;

typedef struct FABRIC_NODE_LOAD_METRIC_INFORMATION_EX1
    {
    LONGLONG NodeBufferedCapacity;
    LONGLONG NodeRemainingBufferedCapacity;
    void *Reserved;
    } 	FABRIC_NODE_LOAD_METRIC_INFORMATION_EX1;

typedef struct FABRIC_NODE_LOAD_METRIC_INFORMATION_EX2
    {
    DOUBLE CurrentNodeLoad;
    DOUBLE NodeCapacityRemaining;
    DOUBLE BufferedNodeCapacityRemaining;
    void *Reserved;
    } 	FABRIC_NODE_LOAD_METRIC_INFORMATION_EX2;

typedef struct FABRIC_NODE_LOAD_METRIC_INFORMATION_LIST
    {
    ULONG Count;
    /* [size_is] */ FABRIC_NODE_LOAD_METRIC_INFORMATION *Items;
    } 	FABRIC_NODE_LOAD_METRIC_INFORMATION_LIST;

typedef struct FABRIC_NODE_LOAD_INFORMATION
    {
    LPCWSTR NodeName;
    const FABRIC_NODE_LOAD_METRIC_INFORMATION_LIST *NodeLoadMetricInformation;
    void *Reserved;
    } 	FABRIC_NODE_LOAD_INFORMATION;

typedef struct FABRIC_APPLICATION_LOAD_METRIC_INFORMATION
    {
    LPCWSTR Name;
    LONGLONG ReservationCapacity;
    LONGLONG ApplicationCapacity;
    LONGLONG ApplicationLoad;
    void *Reserved;
    } 	FABRIC_APPLICATION_LOAD_METRIC_INFORMATION;

typedef struct FABRIC_APPLICATION_LOAD_METRIC_INFORMATION_LIST
    {
    ULONG Count;
    /* [size_is] */ FABRIC_APPLICATION_LOAD_METRIC_INFORMATION *LoadMetrics;
    void *Reserved;
    } 	FABRIC_APPLICATION_LOAD_METRIC_INFORMATION_LIST;

typedef struct FABRIC_APPLICATION_LOAD_INFORMATION
    {
    LPCWSTR Name;
    ULONG MinimumNodes;
    ULONG MaximumNodes;
    ULONG NodeCount;
    const FABRIC_APPLICATION_LOAD_METRIC_INFORMATION_LIST *ApplicationLoadMetricInformation;
    void *Reserved;
    } 	FABRIC_APPLICATION_LOAD_INFORMATION;

typedef struct FABRIC_GATEWAY_INFORMATION
    {
    LPCWSTR NodeAddress;
    FABRIC_NODE_ID NodeId;
    FABRIC_NODE_INSTANCE_ID NodeInstanceId;
    LPCWSTR NodeName;
    void *Reserved;
    } 	FABRIC_GATEWAY_INFORMATION;

typedef struct FABRIC_HEALTH_EVENT
    {
    const FABRIC_HEALTH_INFORMATION *HealthInformation;
    FILETIME SourceUtcTimestamp;
    FILETIME LastModifiedUtcTimestamp;
    BOOLEAN IsExpired;
    void *Reserved;
    } 	FABRIC_HEALTH_EVENT;

typedef struct FABRIC_HEALTH_EVENT_EX1
    {
    FILETIME LastOkTransitionAt;
    FILETIME LastWarningTransitionAt;
    FILETIME LastErrorTransitionAt;
    void *Reserved;
    } 	FABRIC_HEALTH_EVENT_EX1;

typedef struct FABRIC_HEALTH_EVENT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_HEALTH_EVENT *Items;
    } 	FABRIC_HEALTH_EVENT_LIST;

typedef struct FABRIC_HEALTH_EVALUATION
    {
    FABRIC_HEALTH_EVALUATION_KIND Kind;
    void *Value;
    } 	FABRIC_HEALTH_EVALUATION;

typedef struct FABRIC_HEALTH_EVALUATION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_HEALTH_EVALUATION *Items;
    } 	FABRIC_HEALTH_EVALUATION_LIST;

typedef struct FABRIC_HEALTH_STATE_COUNT
    {
    ULONG OkCount;
    ULONG WarningCount;
    ULONG ErrorCount;
    void *Reserved;
    } 	FABRIC_HEALTH_STATE_COUNT;

typedef struct FABRIC_ENTITY_KIND_HEALTH_STATE_COUNT
    {
    FABRIC_HEALTH_ENTITY_KIND EntityKind;
    const FABRIC_HEALTH_STATE_COUNT *HealthStateCount;
    void *Reserved;
    } 	FABRIC_ENTITY_KIND_HEALTH_STATE_COUNT;

typedef struct FABRIC_HEALTH_STATISTICS
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_ENTITY_KIND_HEALTH_STATE_COUNT *Items;
    void *Reserved;
    } 	FABRIC_HEALTH_STATISTICS;

typedef struct FABRIC_REPLICA_HEALTH
    {
    FABRIC_SERVICE_KIND Kind;
    void *Value;
    } 	FABRIC_REPLICA_HEALTH;

typedef struct FABRIC_STATEFUL_SERVICE_REPLICA_HEALTH
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaId;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVENT_LIST *HealthEvents;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_REPLICA_HEALTH;

typedef struct FABRIC_STATEFUL_SERVICE_REPLICA_HEALTH_EX1
    {
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_REPLICA_HEALTH_EX1;

typedef struct FABRIC_STATELESS_SERVICE_INSTANCE_HEALTH
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_INSTANCE_ID InstanceId;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVENT_LIST *HealthEvents;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_INSTANCE_HEALTH;

typedef struct FABRIC_STATELESS_SERVICE_INSTANCE_HEALTH_EX1
    {
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_INSTANCE_HEALTH_EX1;

typedef struct FABRIC_REPLICA_HEALTH_STATE
    {
    FABRIC_SERVICE_KIND Kind;
    void *Value;
    } 	FABRIC_REPLICA_HEALTH_STATE;

typedef struct FABRIC_REPLICA_HEALTH_STATE_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_REPLICA_HEALTH_STATE *Items;
    } 	FABRIC_REPLICA_HEALTH_STATE_LIST;

typedef struct FABRIC_STATELESS_SERVICE_INSTANCE_HEALTH_STATE
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_INSTANCE_ID InstanceId;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_INSTANCE_HEALTH_STATE;

typedef struct FABRIC_STATELESS_SERVICE_INSTANCE_HEALTH_STATE_EX1
    {
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_STATELESS_SERVICE_INSTANCE_HEALTH_STATE_EX1;

typedef struct FABRIC_STATEFUL_SERVICE_REPLICA_HEALTH_STATE
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaId;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_REPLICA_HEALTH_STATE;

typedef struct FABRIC_STATEFUL_SERVICE_REPLICA_HEALTH_STATE_EX1
    {
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_STATEFUL_SERVICE_REPLICA_HEALTH_STATE_EX1;

typedef struct FABRIC_PARTITION_HEALTH
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVENT_LIST *HealthEvents;
    const FABRIC_REPLICA_HEALTH_STATE_LIST *ReplicaHealthStates;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH;

typedef struct FABRIC_PARTITION_HEALTH_EX1
    {
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_EX1;

typedef struct FABRIC_PARTITION_HEALTH_EX2
    {
    const FABRIC_HEALTH_STATISTICS *HealthStatistics;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_EX2;

typedef struct FABRIC_PARTITION_HEALTH_STATE
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_STATE;

typedef struct FABRIC_PARTITION_HEALTH_STATE_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_PARTITION_HEALTH_STATE *Items;
    } 	FABRIC_PARTITION_HEALTH_STATE_LIST;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH
    {
    FABRIC_URI ApplicationName;
    LPCWSTR ServiceManifestName;
    LPCWSTR NodeName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVENT_LIST *HealthEvents;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_EX1
    {
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_EX1;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_EX2
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_EX2;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE
    {
    FABRIC_URI ApplicationName;
    LPCWSTR ServiceManifestName;
    LPCWSTR NodeName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_EX1
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_EX1;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE *Items;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_LIST;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH
    {
    FABRIC_URI ApplicationName;
    LPCWSTR NodeName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVENT_LIST *HealthEvents;
    const FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_LIST *DeployedServicePackageHealthStates;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_EX1
    {
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_EX1;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_EX2
    {
    const FABRIC_HEALTH_STATISTICS *HealthStatistics;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_EX2;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE
    {
    FABRIC_URI ApplicationName;
    LPCWSTR NodeName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE *Items;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_LIST;

typedef struct FABRIC_SERVICE_HEALTH
    {
    FABRIC_URI ServiceName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVENT_LIST *HealthEvents;
    const FABRIC_PARTITION_HEALTH_STATE_LIST *PartitionHealthStates;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH;

typedef struct FABRIC_SERVICE_HEALTH_EX1
    {
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_EX1;

typedef struct FABRIC_SERVICE_HEALTH_EX2
    {
    const FABRIC_HEALTH_STATISTICS *HealthStatistics;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_EX2;

typedef struct FABRIC_SERVICE_HEALTH_STATE
    {
    FABRIC_URI ServiceName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_STATE;

typedef struct FABRIC_SERVICE_HEALTH_STATE_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_HEALTH_STATE *Items;
    } 	FABRIC_SERVICE_HEALTH_STATE_LIST;

typedef struct FABRIC_APPLICATION_HEALTH
    {
    FABRIC_URI ApplicationName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVENT_LIST *HealthEvents;
    const FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_LIST *DeployedApplicationHealthStates;
    const FABRIC_SERVICE_HEALTH_STATE_LIST *ServiceHealthStates;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH;

typedef struct FABRIC_APPLICATION_HEALTH_EX1
    {
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_EX1;

typedef struct FABRIC_APPLICATION_HEALTH_EX2
    {
    const FABRIC_HEALTH_STATISTICS *HealthStatistics;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_EX2;

typedef struct FABRIC_NODE_HEALTH
    {
    LPCWSTR NodeName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVENT_LIST *HealthEvents;
    void *Reserved;
    } 	FABRIC_NODE_HEALTH;

typedef struct FABRIC_NODE_HEALTH_EX1
    {
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_NODE_HEALTH_EX1;

typedef struct FABRIC_CLUSTER_HEALTH
    {
    FABRIC_HEALTH_STATE AggregatedHealthState;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH;

typedef struct FABRIC_NODE_HEALTH_STATE
    {
    LPCWSTR NodeName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    void *Reserved;
    } 	FABRIC_NODE_HEALTH_STATE;

typedef struct FABRIC_NODE_HEALTH_STATE_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_NODE_HEALTH_STATE *Items;
    } 	FABRIC_NODE_HEALTH_STATE_LIST;

typedef struct FABRIC_APPLICATION_HEALTH_STATE
    {
    FABRIC_URI ApplicationName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_STATE;

typedef struct FABRIC_APPLICATION_HEALTH_STATE_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_APPLICATION_HEALTH_STATE *Items;
    } 	FABRIC_APPLICATION_HEALTH_STATE_LIST;

typedef struct FABRIC_CLUSTER_HEALTH_EX1
    {
    const FABRIC_NODE_HEALTH_STATE_LIST *NodeHealthStates;
    const FABRIC_APPLICATION_HEALTH_STATE_LIST *ApplicationHealthStates;
    const FABRIC_HEALTH_EVENT_LIST *HealthEvents;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH_EX1;

typedef struct FABRIC_CLUSTER_HEALTH_EX2
    {
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH_EX2;

typedef struct FABRIC_CLUSTER_HEALTH_EX3
    {
    const FABRIC_HEALTH_STATISTICS *HealthStatistics;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH_EX3;

typedef struct FABRIC_EVENT_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVENT *UnhealthyEvent;
    BOOLEAN ConsiderWarningAsError;
    void *Reserved;
    } 	FABRIC_EVENT_HEALTH_EVALUATION;

typedef struct FABRIC_REPLICAS_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    ULONG TotalCount;
    BYTE MaxPercentUnhealthyReplicasPerPartition;
    void *Reserved;
    } 	FABRIC_REPLICAS_HEALTH_EVALUATION;

typedef struct FABRIC_PARTITIONS_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    ULONG TotalCount;
    BYTE MaxPercentUnhealthyPartitionsPerService;
    void *Reserved;
    } 	FABRIC_PARTITIONS_HEALTH_EVALUATION;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGES_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    ULONG TotalCount;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGES_HEALTH_EVALUATION;

typedef struct FABRIC_DEPLOYED_APPLICATIONS_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    ULONG TotalCount;
    BYTE MaxPercentUnhealthyDeployedApplications;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATIONS_HEALTH_EVALUATION;

typedef struct FABRIC_SERVICES_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    LPCWSTR ServiceTypeName;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    ULONG TotalCount;
    BYTE MaxPercentUnhealthyServices;
    void *Reserved;
    } 	FABRIC_SERVICES_HEALTH_EVALUATION;

typedef struct FABRIC_NODES_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    ULONG TotalCount;
    BYTE MaxPercentUnhealthyNodes;
    void *Reserved;
    } 	FABRIC_NODES_HEALTH_EVALUATION;

typedef struct FABRIC_APPLICATIONS_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    ULONG TotalCount;
    BYTE MaxPercentUnhealthyApplications;
    void *Reserved;
    } 	FABRIC_APPLICATIONS_HEALTH_EVALUATION;

typedef struct FABRIC_UPGRADE_DOMAIN_NODES_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    LPCWSTR UpgradeDomainName;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    ULONG TotalCount;
    BYTE MaxPercentUnhealthyNodes;
    void *Reserved;
    } 	FABRIC_UPGRADE_DOMAIN_NODES_HEALTH_EVALUATION;

typedef struct FABRIC_UPGRADE_DOMAIN_DEPLOYED_APPLICATIONS_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    LPCWSTR UpgradeDomainName;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    ULONG TotalCount;
    BYTE MaxPercentUnhealthyDeployedApplications;
    void *Reserved;
    } 	FABRIC_UPGRADE_DOMAIN_DEPLOYED_APPLICATIONS_HEALTH_EVALUATION;

typedef struct FABRIC_SYSTEM_APPLICATION_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_SYSTEM_APPLICATION_HEALTH_EVALUATION;

typedef struct FABRIC_NODE_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    LPCWSTR NodeName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_NODE_HEALTH_EVALUATION;

typedef struct FABRIC_REPLICA_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaOrInstanceId;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_REPLICA_HEALTH_EVALUATION;

typedef struct FABRIC_PARTITION_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_EVALUATION;

typedef struct FABRIC_SERVICE_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_URI ServiceName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_EVALUATION;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_URI ApplicationName;
    LPCWSTR ServiceManifestName;
    LPCWSTR NodeName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_EVALUATION;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_EVALUATION_EX1
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_EVALUATION_EX1;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_URI ApplicationName;
    LPCWSTR NodeName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_EVALUATION;

typedef struct FABRIC_APPLICATION_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_URI ApplicationName;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_EVALUATION;

typedef struct FABRIC_X509_CREDENTIALS
    {
    ULONG AllowedCommonNameCount;
    /* [size_is] */ LPCWSTR *AllowedCommonNames;
    FABRIC_X509_FIND_TYPE FindType;
    void *FindValue;
    FABRIC_X509_STORE_LOCATION StoreLocation;
    LPCWSTR StoreName;
    FABRIC_PROTECTION_LEVEL ProtectionLevel;
    void *Reserved;
    } 	FABRIC_X509_CREDENTIALS;

typedef struct FABRIC_X509_CREDENTIALS_EX1
    {
    ULONG IssuerThumbprintCount;
    /* [size_is] */ LPCWSTR *IssuerThumbprints;
    void *Reserved;
    } 	FABRIC_X509_CREDENTIALS_EX1;

typedef struct FABRIC_X509_NAME
    {
    LPCWSTR Name;
    LPCWSTR IssuerCertThumbprint;
    void *Reserved;
    } 	FABRIC_X509_NAME;

typedef const struct FABRIC_X509_NAME *PCFABRIC_X509_NAME;

typedef struct FABRIC_X509_CREDENTIALS_EX2
    {
    ULONG RemoteCertThumbprintCount;
    /* [size_is] */ LPCWSTR *RemoteCertThumbprints;
    ULONG RemoteX509NameCount;
    /* [size_is] */ PCFABRIC_X509_NAME RemoteX509Names;
    void *FindValueSecondary;
    void *Reserved;
    } 	FABRIC_X509_CREDENTIALS_EX2;

typedef struct FABRIC_X509_ISSUER_NAME
    {
    LPCWSTR Name;
    ULONG IssuerStoreCount;
    /* [size_is] */ LPCWSTR *IssuerStores;
    void *Reserved;
    } 	FABRIC_X509_ISSUER_NAME;

typedef const struct FABRIC_X509_ISSUER_NAME *PCFABRIC_X509_ISSUER_NAME;

typedef struct FABRIC_X509_CREDENTIALS_EX3
    {
    ULONG RemoteCertIssuerCount;
    /* [size_is] */ PCFABRIC_X509_ISSUER_NAME RemoteCertIssuers;
    void *Reserved;
    } 	FABRIC_X509_CREDENTIALS_EX3;

typedef struct FABRIC_X509_CREDENTIALS2
    {
    LPCWSTR CertLoadPath;
    ULONG RemoteCertThumbprintCount;
    /* [size_is] */ LPCWSTR *RemoteCertThumbprints;
    ULONG RemoteX509NameCount;
    /* [size_is] */ PCFABRIC_X509_NAME RemoteX509Names;
    FABRIC_PROTECTION_LEVEL ProtectionLevel;
    void *Reserved;
    } 	FABRIC_X509_CREDENTIALS2;

typedef struct FABRIC_CLAIMS_CREDENTIALS
    {
    ULONG ServerCommonNameCount;
    /* [size_is] */ LPCWSTR *ServerCommonNames;
    ULONG IssuerThumbprintCount;
    /* [size_is] */ LPCWSTR *IssuerThumbprints;
    LPCWSTR LocalClaims;
    FABRIC_PROTECTION_LEVEL ProtectionLevel;
    void *Reserved;
    } 	FABRIC_CLAIMS_CREDENTIALS;

typedef struct FABRIC_CLAIMS_CREDENTIALS_EX1
    {
    ULONG ServerThumbprintCount;
    /* [size_is] */ LPCWSTR *ServerThumbprints;
    void *Reserved;
    } 	FABRIC_CLAIMS_CREDENTIALS_EX1;

typedef struct FABRIC_WINDOWS_CREDENTIALS
    {
    LPCWSTR RemoteSpn;
    ULONG RemoteIdentityCount;
    /* [size_is] */ LPCWSTR *RemoteIdentities;
    FABRIC_PROTECTION_LEVEL ProtectionLevel;
    void *Reserved;
    } 	FABRIC_WINDOWS_CREDENTIALS;

typedef struct FABRIC_CLAIMS_RETRIEVAL_METADATA
    {
    FABRIC_CLAIMS_RETRIEVAL_METADATA_KIND Kind;
    void *Value;
    } 	FABRIC_CLAIMS_RETRIEVAL_METADATA;

typedef struct FABRIC_AAD_CLAIMS_RETRIEVAL_METADATA
    {
    LPCWSTR Authority;
    LPCWSTR TenantId;
    LPCWSTR ClusterApplication;
    LPCWSTR ClientApplication;
    LPCWSTR ClientRedirect;
    void *Reserved;
    } 	FABRIC_AAD_ClAIMS_RETRIEVAL_METADATA;

typedef struct FABRIC_AAD_CLAIMS_RETRIEVAL_METADATA_EX1
    {
    LPCWSTR LoginEndpoint;
    void *Reserved;
    } 	FABRIC_AAD_ClAIMS_RETRIEVAL_METADATA_EX1;

typedef struct FABRIC_SECURITY_USER_DESCRIPTION
    {
    LPCWSTR Name;
    LPCWSTR Sid;
    const FABRIC_STRING_LIST *ParentSystemGroups;
    const FABRIC_STRING_LIST *ParentApplicationGroups;
    void *Reserved;
    } 	FABRIC_SECURITY_USER_DESCRIPTION;

typedef struct FABRIC_SECURITY_USER_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SECURITY_USER_DESCRIPTION *Items;
    } 	FABRIC_SECURITY_USER_DESCRIPTION_LIST;

typedef struct FABRIC_SECURITY_GROUP_DESCRIPTION
    {
    LPCWSTR Name;
    LPCWSTR Sid;
    const FABRIC_STRING_LIST *DomainGroupMembers;
    const FABRIC_STRING_LIST *SystemGroupMembers;
    const FABRIC_STRING_LIST *DomainUserMembers;
    void *Reserved;
    } 	FABRIC_SECURITY_GROUP_DESCRIPTION;

typedef struct FABRIC_SECURITY_GROUP_DESCRIPTION_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SECURITY_GROUP_DESCRIPTION *Items;
    } 	FABRIC_SECURITY_GROUP_DESCRIPTION_LIST;

typedef struct FABRIC_APPLICATION_PRINCIPALS_DESCRIPTION
    {
    const FABRIC_SECURITY_USER_DESCRIPTION_LIST *Users;
    const FABRIC_SECURITY_GROUP_DESCRIPTION_LIST *Groups;
    void *Reserved;
    } 	FABRIC_APPLICATION_PRINCIPALS_DESCRIPTION;

typedef struct FABRIC_APPLICATION_UPGRADE_PROGRESS
    {
    const FABRIC_APPLICATION_UPGRADE_DESCRIPTION *UpgradeDescription;
    FABRIC_APPLICATION_UPGRADE_STATE UpgradeState;
    FABRIC_ROLLING_UPGRADE_MODE UpgradeMode;
    LPCWSTR NextUpgradeDomain;
    const FABRIC_UPGRADE_DOMAIN_STATUS_DESCRIPTION_LIST *UpgradeDomains;
    DWORD UpgradeDurationInSeconds;
    DWORD CurrentUpgradeDomainDurationInSeconds;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    const FABRIC_UPGRADE_DOMAIN_PROGRESS *CurrentUpgradeDomainProgress;
    void *Reserved;
    } 	FABRIC_APPLICATION_UPGRADE_PROGRESS;

typedef struct FABRIC_APPLICATION_UPGRADE_PROGRESS_EX1
    {
    FILETIME StartTimestampUtc;
    FILETIME FailureTimestampUtc;
    FABRIC_UPGRADE_FAILURE_REASON FailureReason;
    const FABRIC_UPGRADE_DOMAIN_PROGRESS *UpgradeDomainProgressAtFailure;
    void *Reserved;
    } 	FABRIC_APPLICATION_UPGRADE_PROGRESS_EX1;

typedef struct FABRIC_APPLICATION_UPGRADE_PROGRESS_EX2
    {
    LPCWSTR UpgradeStatusDetails;
    void *Reserved;
    } 	FABRIC_APPLICATION_UPGRADE_PROGRESS_EX2;

typedef struct FABRIC_PROVISION_APPLICATION_TYPE_DESCRIPTION_BASE
    {
    FABRIC_PROVISION_APPLICATION_TYPE_KIND Kind;
    void *Value;
    } 	FABRIC_PROVISION_APPLICATION_TYPE_DESCRIPTION_BASE;

typedef struct FABRIC_PROVISION_APPLICATION_TYPE_DESCRIPTION
    {
    LPCWSTR BuildPath;
    BOOLEAN Async;
    void *Reserved;
    } 	FABRIC_PROVISION_APPLICATION_TYPE_DESCRIPTION;

typedef struct FABRIC_PROVISION_APPLICATION_TYPE_DESCRIPTION_EX1
    {
    FABRIC_APPLICATION_PACKAGE_CLEANUP_POLICY ApplicationPackageCleanupPolicy;
    void *Reserved;
    } 	FABRIC_PROVISION_APPLICATION_TYPE_DESCRIPTION_EX1;

typedef struct FABRIC_EXTERNAL_STORE_PROVISION_APPLICATION_TYPE_DESCRIPTION
    {
    LPCWSTR ApplicationTypeName;
    LPCWSTR ApplicationTypeVersion;
    LPCWSTR ApplicationPackageDownloadUri;
    BOOLEAN Async;
    void *Reserved;
    } 	FABRIC_EXTERNAL_STORE_PROVISION_APPLICATION_TYPE_DESCRIPTION;

typedef struct FABRIC_UNPROVISION_APPLICATION_TYPE_DESCRIPTION
    {
    LPCWSTR ApplicationTypeName;
    LPCWSTR ApplicationTypeVersion;
    BOOLEAN Async;
    void *Reserved;
    } 	FABRIC_UNPROVISION_APPLICATION_TYPE_DESCRIPTION;

typedef struct FABRIC_DELETE_APPLICATION_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    BOOLEAN ForceDelete;
    void *Reserved;
    } 	FABRIC_DELETE_APPLICATION_DESCRIPTION;

typedef struct FABRIC_UPGRADE_PROGRESS
    {
    const FABRIC_UPGRADE_DESCRIPTION *UpgradeDescription;
    FABRIC_UPGRADE_STATE UpgradeState;
    FABRIC_ROLLING_UPGRADE_MODE UpgradeMode;
    LPCWSTR NextUpgradeDomain;
    const FABRIC_UPGRADE_DOMAIN_STATUS_DESCRIPTION_LIST *UpgradeDomains;
    DWORD UpgradeDurationInSeconds;
    DWORD CurrentUpgradeDomainDurationInSeconds;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    const FABRIC_UPGRADE_DOMAIN_PROGRESS *CurrentUpgradeDomainProgress;
    void *Reserved;
    } 	FABRIC_UPGRADE_PROGRESS;

typedef struct FABRIC_UPGRADE_PROGRESS_EX1
    {
    FILETIME StartTimestampUtc;
    FILETIME FailureTimestampUtc;
    FABRIC_UPGRADE_FAILURE_REASON FailureReason;
    const FABRIC_UPGRADE_DOMAIN_PROGRESS *UpgradeDomainProgressAtFailure;
    void *Reserved;
    } 	FABRIC_UPGRADE_PROGRESS_EX1;

typedef struct FABRIC_PACKAGE_SHARING_POLICY
    {
    LPCWSTR PackageName;
    FABRIC_PACKAGE_SHARING_POLICY_SCOPE Scope;
    void *Reserved;
    } 	FABRIC_PACKAGE_SHARING_POLICY;

typedef struct FABRIC_PACKAGE_SHARING_POLICY_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_PACKAGE_SHARING_POLICY *Items;
    } 	FABRIC_PACKAGE_SHARING_POLICY_LIST;

typedef struct FABRIC_HEALTH_EVENTS_FILTER
    {
    DWORD HealthStateFilter;
    void *Reserved;
    } 	FABRIC_HEALTH_EVENTS_FILTER;

typedef struct FABRIC_NODE_HEALTH_STATES_FILTER
    {
    DWORD HealthStateFilter;
    void *Reserved;
    } 	FABRIC_NODE_HEALTH_STATES_FILTER;

typedef struct FABRIC_REPLICA_HEALTH_STATES_FILTER
    {
    DWORD HealthStateFilter;
    void *Reserved;
    } 	FABRIC_REPLICA_HEALTH_STATES_FILTER;

typedef struct FABRIC_PARTITION_HEALTH_STATES_FILTER
    {
    DWORD HealthStateFilter;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_STATES_FILTER;

typedef struct FABRIC_SERVICE_HEALTH_STATES_FILTER
    {
    DWORD HealthStateFilter;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_STATES_FILTER;

typedef struct FABRIC_APPLICATION_HEALTH_STATES_FILTER
    {
    DWORD HealthStateFilter;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_STATES_FILTER;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_STATES_FILTER
    {
    DWORD HealthStateFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_STATES_FILTER;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATES_FILTER
    {
    DWORD HealthStateFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATES_FILTER;

typedef struct FABRIC_CLUSTER_HEALTH_QUERY_DESCRIPTION
    {
    const FABRIC_CLUSTER_HEALTH_POLICY *HealthPolicy;
    const FABRIC_APPLICATION_HEALTH_POLICY_MAP *ApplicationHealthPolicyMap;
    const FABRIC_HEALTH_EVENTS_FILTER *EventsFilter;
    const FABRIC_NODE_HEALTH_STATES_FILTER *NodesFilter;
    const FABRIC_APPLICATION_HEALTH_STATES_FILTER *ApplicationsFilter;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH_QUERY_DESCRIPTION;

typedef struct FABRIC_CLUSTER_HEALTH_STATISTICS_FILTER
    {
    BOOLEAN ExcludeHealthStatistics;
    BOOLEAN IncludeSystemApplicationHealthStatistics;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH_STATISTICS_FILTER;

typedef struct FABRIC_CLUSTER_HEALTH_QUERY_DESCRIPTION_EX1
    {
    const FABRIC_CLUSTER_HEALTH_STATISTICS_FILTER *HealthStatisticsFilter;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH_QUERY_DESCRIPTION_EX1;

typedef struct FABRIC_NODE_HEALTH_QUERY_DESCRIPTION
    {
    LPCWSTR NodeName;
    const FABRIC_CLUSTER_HEALTH_POLICY *HealthPolicy;
    const FABRIC_HEALTH_EVENTS_FILTER *EventsFilter;
    void *Reserved;
    } 	FABRIC_NODE_HEALTH_QUERY_DESCRIPTION;

typedef struct FABRIC_APPLICATION_HEALTH_QUERY_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    const FABRIC_APPLICATION_HEALTH_POLICY *HealthPolicy;
    const FABRIC_HEALTH_EVENTS_FILTER *EventsFilter;
    const FABRIC_SERVICE_HEALTH_STATES_FILTER *ServicesFilter;
    const FABRIC_DEPLOYED_APPLICATION_HEALTH_STATES_FILTER *DeployedApplicationsFilter;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_QUERY_DESCRIPTION;

typedef struct FABRIC_APPLICATION_HEALTH_STATISTICS_FILTER
    {
    BOOLEAN ExcludeHealthStatistics;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_STATISTICS_FILTER;

typedef struct FABRIC_APPLICATION_HEALTH_QUERY_DESCRIPTION_EX1
    {
    const FABRIC_APPLICATION_HEALTH_STATISTICS_FILTER *HealthStatisticsFilter;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_QUERY_DESCRIPTION_EX1;

typedef struct FABRIC_SERVICE_HEALTH_QUERY_DESCRIPTION
    {
    FABRIC_URI ServiceName;
    const FABRIC_APPLICATION_HEALTH_POLICY *HealthPolicy;
    const FABRIC_HEALTH_EVENTS_FILTER *EventsFilter;
    const FABRIC_PARTITION_HEALTH_STATES_FILTER *PartitionsFilter;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_QUERY_DESCRIPTION;

typedef struct FABRIC_SERVICE_HEALTH_STATISTICS_FILTER
    {
    BOOLEAN ExcludeHealthStatistics;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_STATISTICS_FILTER;

typedef struct FABRIC_SERVICE_HEALTH_QUERY_DESCRIPTION_EX1
    {
    const FABRIC_SERVICE_HEALTH_STATISTICS_FILTER *HealthStatisticsFilter;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_QUERY_DESCRIPTION_EX1;

typedef struct FABRIC_PARTITION_HEALTH_QUERY_DESCRIPTION
    {
    FABRIC_PARTITION_ID PartitionId;
    const FABRIC_APPLICATION_HEALTH_POLICY *HealthPolicy;
    const FABRIC_HEALTH_EVENTS_FILTER *EventsFilter;
    const FABRIC_REPLICA_HEALTH_STATES_FILTER *ReplicasFilter;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_QUERY_DESCRIPTION;

typedef struct FABRIC_PARTITION_HEALTH_STATISTICS_FILTER
    {
    BOOLEAN ExcludeHealthStatistics;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_STATISTICS_FILTER;

typedef struct FABRIC_PARTITION_HEALTH_QUERY_DESCRIPTION_EX1
    {
    const FABRIC_PARTITION_HEALTH_STATISTICS_FILTER *HealthStatisticsFilter;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_QUERY_DESCRIPTION_EX1;

typedef struct FABRIC_REPLICA_HEALTH_QUERY_DESCRIPTION
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_REPLICA_ID ReplicaOrInstanceId;
    const FABRIC_APPLICATION_HEALTH_POLICY *HealthPolicy;
    const FABRIC_HEALTH_EVENTS_FILTER *EventsFilter;
    void *Reserved;
    } 	FABRIC_REPLICA_HEALTH_QUERY_DESCRIPTION;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_QUERY_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    LPCWSTR NodeName;
    const FABRIC_APPLICATION_HEALTH_POLICY *HealthPolicy;
    const FABRIC_HEALTH_EVENTS_FILTER *EventsFilter;
    const FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATES_FILTER *DeployedServicePackagesFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_QUERY_DESCRIPTION;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_STATISTICS_FILTER
    {
    BOOLEAN ExcludeHealthStatistics;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_STATISTICS_FILTER;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_QUERY_DESCRIPTION_EX1
    {
    const FABRIC_DEPLOYED_APPLICATION_HEALTH_STATISTICS_FILTER *HealthStatisticsFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_QUERY_DESCRIPTION_EX1;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_QUERY_DESCRIPTION
    {
    FABRIC_URI ApplicationName;
    LPCWSTR NodeName;
    LPCWSTR ServiceManifestName;
    const FABRIC_APPLICATION_HEALTH_POLICY *HealthPolicy;
    const FABRIC_HEALTH_EVENTS_FILTER *EventsFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_QUERY_DESCRIPTION;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_QUERY_DESCRIPTION_EX1
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_QUERY_DESCRIPTION_EX1;

typedef struct FABRIC_REPAIR_SCOPE_IDENTIFIER
    {
    FABRIC_REPAIR_SCOPE_IDENTIFIER_KIND Kind;
    void *Value;
    } 	FABRIC_REPAIR_SCOPE_IDENTIFIER;

typedef struct FABRIC_REPAIR_TARGET_DESCRIPTION
    {
    FABRIC_REPAIR_TARGET_KIND Kind;
    void *Value;
    } 	FABRIC_REPAIR_TARGET_DESCRIPTION;

typedef struct FABRIC_REPAIR_NODE_IMPACT
    {
    LPCWSTR NodeName;
    FABRIC_REPAIR_NODE_IMPACT_LEVEL ImpactLevel;
    void *Reserved;
    } 	FABRIC_REPAIR_NODE_IMPACT;

typedef struct FABRIC_REPAIR_NODE_IMPACT_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_REPAIR_NODE_IMPACT *Items;
    } 	FABRIC_REPAIR_NODE_IMPACT_LIST;

typedef struct FABRIC_REPAIR_IMPACT_DESCRIPTION
    {
    FABRIC_REPAIR_IMPACT_KIND Kind;
    void *Value;
    } 	FABRIC_REPAIR_IMPACT_DESCRIPTION;

typedef struct FABRIC_REPAIR_RESULT_DESCRIPTION
    {
    FABRIC_REPAIR_TASK_RESULT ResultStatus;
    HRESULT ResultCode;
    LPCWSTR ResultDetails;
    void *Reserved;
    } 	FABRIC_REPAIR_RESULT_DESCRIPTION;

typedef struct FABRIC_REPAIR_TASK_HISTORY
    {
    FILETIME CreatedUtcTimestamp;
    FILETIME ClaimedUtcTimestamp;
    FILETIME PreparingUtcTimestamp;
    FILETIME ApprovedUtcTimestamp;
    FILETIME ExecutingUtcTimestamp;
    FILETIME RestoringUtcTimestamp;
    FILETIME CompletedUtcTimestamp;
    void *Reserved;
    } 	FABRIC_REPAIR_TASK_HISTORY;

typedef struct FABRIC_REPAIR_TASK_HISTORY_EX1
    {
    FILETIME PreparingHealthCheckStartUtcTimestamp;
    FILETIME PreparingHealthCheckEndUtcTimestamp;
    FILETIME RestoringHealthCheckStartUtcTimestamp;
    FILETIME RestoringHealthCheckEndUtcTimestamp;
    void *Reserved;
    } 	FABRIC_REPAIR_TASK_HISTORY_EX1;

typedef struct FABRIC_REPAIR_EXECUTOR_STATE
    {
    LPCWSTR Executor;
    LPCWSTR ExecutorData;
    void *Reserved;
    } 	FABRIC_REPAIR_EXECUTOR_STATE;

typedef struct FABRIC_REPAIR_TASK_HEALTH_POLICY_UPDATE_DESCRIPTION
    {
    FABRIC_REPAIR_SCOPE_IDENTIFIER *Scope;
    LPCWSTR RepairTaskId;
    FABRIC_SEQUENCE_NUMBER Version;
    DWORD Flags;
    BOOLEAN PerformPreparingHealthCheck;
    BOOLEAN PerformRestoringHealthCheck;
    void *Reserved;
    } 	FABRIC_REPAIR_TASK_HEALTH_POLICY_UPDATE_DESCRIPTION;

typedef struct FABRIC_REPAIR_TASK
    {
    const FABRIC_REPAIR_SCOPE_IDENTIFIER *Scope;
    LPCWSTR TaskId;
    FABRIC_SEQUENCE_NUMBER Version;
    LPCWSTR Description;
    FABRIC_REPAIR_TASK_STATE State;
    DWORD Flags;
    LPCWSTR Action;
    const FABRIC_REPAIR_TARGET_DESCRIPTION *Target;
    FABRIC_REPAIR_EXECUTOR_STATE *ExecutorState;
    FABRIC_REPAIR_IMPACT_DESCRIPTION *Impact;
    FABRIC_REPAIR_RESULT_DESCRIPTION *Result;
    const FABRIC_REPAIR_TASK_HISTORY *History;
    void *Reserved;
    } 	FABRIC_REPAIR_TASK;

typedef struct FABRIC_REPAIR_TASK_EX1
    {
    BOOLEAN PerformPreparingHealthCheck;
    BOOLEAN PerformRestoringHealthCheck;
    FABRIC_REPAIR_TASK_HEALTH_CHECK_STATE PreparingHealthCheckState;
    FABRIC_REPAIR_TASK_HEALTH_CHECK_STATE RestoringHealthCheckState;
    void *Reserved;
    } 	FABRIC_REPAIR_TASK_EX1;

typedef struct FABRIC_REPAIR_TASK_LIST
    {
    ULONG Count;
    /* [size_is] */ FABRIC_REPAIR_TASK *Items;
    } 	FABRIC_REPAIR_TASK_LIST;

typedef struct FABRIC_REPAIR_CANCEL_DESCRIPTION
    {
    FABRIC_REPAIR_SCOPE_IDENTIFIER *Scope;
    LPCWSTR RepairTaskId;
    FABRIC_SEQUENCE_NUMBER Version;
    BOOLEAN RequestAbort;
    void *Reserved;
    } 	FABRIC_REPAIR_CANCEL_DESCRIPTION;

typedef struct FABRIC_REPAIR_DELETE_DESCRIPTION
    {
    FABRIC_REPAIR_SCOPE_IDENTIFIER *Scope;
    LPCWSTR RepairTaskId;
    FABRIC_SEQUENCE_NUMBER Version;
    void *Reserved;
    } 	FABRIC_REPAIR_DELETE_DESCRIPTION;

typedef struct FABRIC_REPAIR_APPROVE_DESCRIPTION
    {
    FABRIC_REPAIR_SCOPE_IDENTIFIER *Scope;
    LPCWSTR RepairTaskId;
    FABRIC_SEQUENCE_NUMBER Version;
    void *Reserved;
    } 	FABRIC_REPAIR_APPROVE_DESCRIPTION;

typedef struct FABRIC_REPAIR_TASK_QUERY_DESCRIPTION
    {
    FABRIC_REPAIR_SCOPE_IDENTIFIER *Scope;
    LPCWSTR TaskIdFilter;
    DWORD StateFilter;
    LPCWSTR ExecutorFilter;
    void *Reserved;
    } 	FABRIC_REPAIR_TASK_QUERY_DESCRIPTION;

typedef 
enum FABRIC_STORE_BACKUP_OPTION
    {
        FABRIC_STORE_BACKUP_OPTION_FULL	= 0x1,
        FABRIC_STORE_BACKUP_OPTION_INCREMENTAL	= 0x2,
        FABRIC_STORE_BACKUP_OPTION_TRUNCATE_LOGS_ONLY	= 0x3
    } 	FABRIC_STORE_BACKUP_OPTION;

typedef struct FABRIC_STORE_BACKUP_INFO
    {
    LPCWSTR BackupFolder;
    FABRIC_STORE_BACKUP_OPTION BackupOption;
    void *Reserved;
    } 	FABRIC_STORE_BACKUP_INFO;

typedef struct FABRIC_STORE_BACKUP_INFO_EX1
    {
    GUID BackupChainId;
    ULONG BackupIndex;
    void *Reserved;
    } 	FABRIC_STORE_BACKUP_INFO_EX1;

typedef struct FABRIC_DELTA_NODES_CHECK_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    ULONG BaselineErrorCount;
    ULONG BaselineTotalCount;
    ULONG TotalCount;
    BYTE MaxPercentDeltaUnhealthyNodes;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_DELTA_NODES_CHECK_HEALTH_EVALUATION;

typedef struct FABRIC_UPGRADE_DOMAIN_DELTA_NODES_CHECK_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    LPCWSTR UpgradeDomainName;
    ULONG BaselineErrorCount;
    ULONG BaselineTotalCount;
    ULONG TotalCount;
    BYTE MaxPercentUpgradeDomainDeltaUnhealthyNodes;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    void *Reserved;
    } 	FABRIC_UPGRADE_DOMAIN_DELTA_NODES_CHECK_HEALTH_EVALUATION;

typedef struct FABRIC_PAGING_STATUS
    {
    LPCWSTR ContinuationToken;
    void *Reserved;
    } 	FABRIC_PAGING_STATUS;

typedef struct FABRIC_NODE_QUERY_DESCRIPTION_EX1
    {
    LPCWSTR ContinuationToken;
    void *Reserved;
    } 	FABRIC_NODE_QUERY_DESCRIPTION_EX1;

typedef struct FABRIC_NODE_QUERY_DESCRIPTION_EX2
    {
    DWORD NodeStatusFilter;
    void *Reserved;
    } 	FABRIC_NODE_QUERY_DESCRIPTION_EX2;

typedef struct FABRIC_SERVICE_PARTITION_QUERY_DESCRIPTION_EX1
    {
    LPCWSTR ContinuationToken;
    void *Reserved;
    } 	FABRIC_SERVICE_PARTITION_QUERY_DESCRIPTION_EX1;

typedef struct FABRIC_SERVICE_REPLICA_QUERY_DESCRIPTION_EX2
    {
    LPCWSTR ContinuationToken;
    void *Reserved;
    } 	FABRIC_SERVICE_REPLICA_QUERY_DESCRIPTION_EX2;

typedef struct FABRIC_APPLICATION_TYPE_HEALTH_POLICY_MAP_ITEM
    {
    LPCWSTR ApplicationTypeName;
    BYTE MaxPercentUnhealthyApplications;
    } 	FABRIC_APPLICATION_TYPE_HEALTH_POLICY_MAP_ITEM;

typedef struct FABRIC_APPLICATION_TYPE_HEALTH_POLICY_MAP
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_APPLICATION_TYPE_HEALTH_POLICY_MAP_ITEM *Items;
    } 	FABRIC_APPLICATION_TYPE_HEALTH_POLICY_MAP;

typedef struct FABRIC_CLUSTER_HEALTH_POLICY_EX1
    {
    const FABRIC_APPLICATION_TYPE_HEALTH_POLICY_MAP *ApplicationTypeHealthPolicyMap;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH_POLICY_EX1;

typedef struct FABRIC_APPLICATION_TYPE_APPLICATIONS_HEALTH_EVALUATION
    {
    LPCWSTR Description;
    FABRIC_HEALTH_STATE AggregatedHealthState;
    LPCWSTR ApplicationTypeName;
    const FABRIC_HEALTH_EVALUATION_LIST *UnhealthyEvaluations;
    ULONG TotalCount;
    BYTE MaxPercentUnhealthyApplications;
    void *Reserved;
    } 	FABRIC_APPLICATION_TYPE_APPLICATIONS_HEALTH_EVALUATION;

typedef struct FABRIC_NODE_HEALTH_STATE_FILTER
    {
    DWORD HealthStateFilter;
    LPCWSTR NodeNameFilter;
    void *Reserved;
    } 	FABRIC_NODE_HEALTH_STATE_FILTER;

typedef struct FABRIC_NODE_HEALTH_STATE_FILTER_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_NODE_HEALTH_STATE_FILTER *Items;
    } 	FABRIC_NODE_HEALTH_STATE_FILTER_LIST;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_FILTER
    {
    DWORD HealthStateFilter;
    LPCWSTR ServiceManifestNameFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_FILTER;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_FILTER_EX1
    {
    LPCWSTR ServicePackageActivationIdFilter;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_FILTER_EX1;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_FILTER_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_FILTER *Items;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_FILTER_LIST;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_FILTER
    {
    DWORD HealthStateFilter;
    LPCWSTR NodeNameFilter;
    const FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_FILTER_LIST *DeployedServicePackageFilters;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_FILTER;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_FILTER_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_FILTER *Items;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_FILTER_LIST;

typedef struct FABRIC_REPLICA_HEALTH_STATE_FILTER
    {
    DWORD HealthStateFilter;
    FABRIC_REPLICA_ID ReplicaOrInstanceIdFilter;
    void *Reserved;
    } 	FABRIC_REPLICA_HEALTH_STATE_FILTER;

typedef struct FABRIC_REPLICA_HEALTH_STATE_FILTER_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_REPLICA_HEALTH_STATE_FILTER *Items;
    } 	FABRIC_REPLICA_HEALTH_STATE_FILTER_LIST;

typedef struct FABRIC_PARTITION_HEALTH_STATE_FILTER
    {
    DWORD HealthStateFilter;
    FABRIC_PARTITION_ID PartitionIdFilter;
    const FABRIC_REPLICA_HEALTH_STATE_FILTER_LIST *ReplicaFilters;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_STATE_FILTER;

typedef struct FABRIC_PARTITION_HEALTH_STATE_FILTER_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_PARTITION_HEALTH_STATE_FILTER *Items;
    } 	FABRIC_PARTITION_HEALTH_STATE_FILTER_LIST;

typedef struct FABRIC_SERVICE_HEALTH_STATE_FILTER
    {
    DWORD HealthStateFilter;
    FABRIC_URI ServiceNameFilter;
    const FABRIC_PARTITION_HEALTH_STATE_FILTER_LIST *PartitionFilters;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_STATE_FILTER;

typedef struct FABRIC_SERVICE_HEALTH_STATE_FILTER_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_HEALTH_STATE_FILTER *Items;
    } 	FABRIC_SERVICE_HEALTH_STATE_FILTER_LIST;

typedef struct FABRIC_APPLICATION_HEALTH_STATE_FILTER
    {
    DWORD HealthStateFilter;
    FABRIC_URI ApplicationNameFilter;
    const FABRIC_SERVICE_HEALTH_STATE_FILTER_LIST *ServiceFilters;
    const FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_FILTER_LIST *DeployedApplicationFilters;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_STATE_FILTER;

typedef struct FABRIC_APPLICATION_HEALTH_STATE_FILTER_EX1
    {
    LPCWSTR ApplicationTypeNameFilter;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_STATE_FILTER_EX1;

typedef struct FABRIC_APPLICATION_HEALTH_STATE_FILTER_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_APPLICATION_HEALTH_STATE_FILTER *Items;
    } 	FABRIC_APPLICATION_HEALTH_STATE_FILTER_LIST;

typedef struct FABRIC_CLUSTER_HEALTH_CHUNK_QUERY_DESCRIPTION
    {
    const FABRIC_CLUSTER_HEALTH_POLICY *ClusterHealthPolicy;
    const FABRIC_APPLICATION_HEALTH_POLICY_MAP *ApplicationHealthPolicyMap;
    const FABRIC_APPLICATION_HEALTH_STATE_FILTER_LIST *ApplicationFilters;
    const FABRIC_NODE_HEALTH_STATE_FILTER_LIST *NodeFilters;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH_CHUNK_QUERY_DESCRIPTION;

typedef struct FABRIC_NODE_HEALTH_STATE_CHUNK
    {
    LPCWSTR NodeName;
    FABRIC_HEALTH_STATE HealthState;
    void *Reserved;
    } 	FABRIC_NODE_HEALTH_STATE_CHUNK;

typedef struct FABRIC_NODE_HEALTH_STATE_CHUNK_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_NODE_HEALTH_STATE_CHUNK *Items;
    ULONG TotalCount;
    void *Reserved;
    } 	FABRIC_NODE_HEALTH_STATE_CHUNK_LIST;

typedef struct FABRIC_REPLICA_HEALTH_STATE_CHUNK
    {
    FABRIC_REPLICA_ID ReplicaOrInstanceId;
    FABRIC_HEALTH_STATE HealthState;
    void *Reserved;
    } 	FABRIC_REPLICA_HEALTH_STATE_CHUNK;

typedef struct FABRIC_REPLICA_HEALTH_STATE_CHUNK_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_REPLICA_HEALTH_STATE_CHUNK *Items;
    ULONG TotalCount;
    void *Reserved;
    } 	FABRIC_REPLICA_HEALTH_STATE_CHUNK_LIST;

typedef struct FABRIC_PARTITION_HEALTH_STATE_CHUNK
    {
    FABRIC_PARTITION_ID PartitionId;
    FABRIC_HEALTH_STATE HealthState;
    const FABRIC_REPLICA_HEALTH_STATE_CHUNK_LIST *ReplicaHealthStateChunks;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_STATE_CHUNK;

typedef struct FABRIC_PARTITION_HEALTH_STATE_CHUNK_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_PARTITION_HEALTH_STATE_CHUNK *Items;
    ULONG TotalCount;
    void *Reserved;
    } 	FABRIC_PARTITION_HEALTH_STATE_CHUNK_LIST;

typedef struct FABRIC_SERVICE_HEALTH_STATE_CHUNK
    {
    FABRIC_URI ServiceName;
    FABRIC_HEALTH_STATE HealthState;
    const FABRIC_PARTITION_HEALTH_STATE_CHUNK_LIST *PartitionHealthStateChunks;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_STATE_CHUNK;

typedef struct FABRIC_SERVICE_HEALTH_STATE_CHUNK_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_SERVICE_HEALTH_STATE_CHUNK *Items;
    ULONG TotalCount;
    void *Reserved;
    } 	FABRIC_SERVICE_HEALTH_STATE_CHUNK_LIST;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_CHUNK
    {
    LPCWSTR ServiceManifestName;
    FABRIC_HEALTH_STATE HealthState;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_CHUNK;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_CHUNK_EX1
    {
    LPCWSTR ServicePackageActivationId;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_CHUNK_EX1;

typedef struct FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_CHUNK_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_CHUNK *Items;
    ULONG TotalCount;
    void *Reserved;
    } 	FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_CHUNK_LIST;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_CHUNK
    {
    LPCWSTR NodeName;
    FABRIC_HEALTH_STATE HealthState;
    const FABRIC_DEPLOYED_SERVICE_PACKAGE_HEALTH_STATE_CHUNK_LIST *DeployedServicePackageHealthStateChunks;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_CHUNK;

typedef struct FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_CHUNK_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_CHUNK *Items;
    ULONG TotalCount;
    void *Reserved;
    } 	FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_CHUNK_LIST;

typedef struct FABRIC_APPLICATION_HEALTH_STATE_CHUNK
    {
    FABRIC_URI ApplicationName;
    FABRIC_HEALTH_STATE HealthState;
    const FABRIC_SERVICE_HEALTH_STATE_CHUNK_LIST *ServiceHealthStateChunks;
    const FABRIC_DEPLOYED_APPLICATION_HEALTH_STATE_CHUNK_LIST *DeployedApplicationHealthStateChunks;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_STATE_CHUNK;

typedef struct FABRIC_APPLICATION_HEALTH_STATE_CHUNK_EX1
    {
    FABRIC_URI ApplicationTypeName;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_STATE_CHUNK_EX1;

typedef struct FABRIC_APPLICATION_HEALTH_STATE_CHUNK_LIST
    {
    ULONG Count;
    /* [size_is] */ const FABRIC_APPLICATION_HEALTH_STATE_CHUNK *Items;
    ULONG TotalCount;
    void *Reserved;
    } 	FABRIC_APPLICATION_HEALTH_STATE_CHUNK_LIST;

typedef struct FABRIC_CLUSTER_HEALTH_CHUNK
    {
    FABRIC_HEALTH_STATE HealthState;
    const FABRIC_NODE_HEALTH_STATE_CHUNK_LIST *NodeHealthStateChunks;
    const FABRIC_APPLICATION_HEALTH_STATE_CHUNK_LIST *ApplicationHealthStateChunks;
    void *Reserved;
    } 	FABRIC_CLUSTER_HEALTH_CHUNK;

typedef struct FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION_EX3
    {
    const FABRIC_APPLICATION_HEALTH_POLICY_MAP *ApplicationHealthPolicyMap;
    void *Reserved;
    } 	FABRIC_ROLLING_UPGRADE_POLICY_DESCRIPTION_EX3;

typedef struct FABRIC_EVENT_CONTEXT_MAP_ITEM
    {
    LPCWSTR Key;
    LPCWSTR Value;
    } 	FABRIC_EVENT_CONTEXT_MAP_ITEM;

typedef struct FABRIC_EVENT_CONTEXT_MAP
    {
    ULONG Count;
    /* [size_is] */ FABRIC_EVENT_CONTEXT_MAP_ITEM *Items;
    } 	FABRIC_EVENT_CONTEXT_MAP;

typedef struct FABRIC_CHAOS_PARAMETERS
    {
    ULONG MaxClusterStabilizationTimeoutInSeconds;
    ULONG MaxConcurrentFaults;
    BOOLEAN EnableMoveReplicaFaults;
    ULONGLONG TimeToRunInSeconds;
    ULONG WaitTimeBetweenIterationsInSeconds;
    ULONG WaitTimeBetweenFaultsInSeconds;
    const FABRIC_EVENT_CONTEXT_MAP *Context;
    void *Reserved;
    } 	FABRIC_CHAOS_PARAMETERS;

typedef struct FABRIC_CHAOS_PARAMETERS_EX1
    {
    const FABRIC_CLUSTER_HEALTH_POLICY *ClusterHealthPolicy;
    void *Reserved;
    } 	FABRIC_CHAOS_PARAMETERS_EX1;

typedef struct FABRIC_CHAOS_TARGET_FILTER
    {
    const FABRIC_STRING_LIST *NodeTypeInclusionList;
    const FABRIC_STRING_LIST *ApplicationInclusionList;
    void *Reserved;
    } 	FABRIC_CHAOS_TARGET_FILTER;

typedef struct FABRIC_CHAOS_PARAMETERS_EX2
    {
    const FABRIC_CHAOS_TARGET_FILTER *ChaosTargetFilter;
    void *Reserved;
    } 	FABRIC_CHAOS_PARAMETERS_EX2;

typedef struct FABRIC_START_CHAOS_DESCRIPTION
    {
    FABRIC_CHAOS_PARAMETERS *ChaosParameters;
    void *Reserved;
    } 	FABRIC_START_CHAOS_DESCRIPTION;

typedef struct FABRIC_CHAOS_REPORT_FILTER
    {
    FILETIME StartTimeUtc;
    FILETIME EndTimeUtc;
    void *Reserved;
    } 	FABRIC_CHAOS_REPORT_FILTER;

typedef struct FABRIC_GET_CHAOS_REPORT_DESCRIPTION
    {
    FABRIC_CHAOS_REPORT_FILTER *Filter;
    LPCWSTR ContinuationToken;
    void *Reserved;
    } 	FABRIC_GET_CHAOS_REPORT_DESCRIPTION;

typedef struct FABRIC_CHAOS_EVENT
    {
    FABRIC_CHAOS_EVENT_KIND Kind;
    void *Value;
    } 	FABRIC_CHAOS_EVENT;

typedef struct FABRIC_STARTED_EVENT
    {
    FILETIME TimeStampUtc;
    FABRIC_CHAOS_PARAMETERS *ChaosParameters;
    void *Reserved;
    } 	FABRIC_STARTED_EVENT;

typedef struct FABRIC_EXECUTING_FAULTS_EVENT
    {
    FILETIME TimeStampUtc;
    const FABRIC_STRING_LIST *Faults;
    void *Reserved;
    } 	FABRIC_EXECUTING_FAULTS_EVENT;

typedef struct FABRIC_WAITING_EVENT
    {
    FILETIME TimeStampUtc;
    LPCWSTR Reason;
    void *Reserved;
    } 	FABRIC_WAITING_EVENT;

typedef struct FABRIC_VALIDATION_FAILED_EVENT
    {
    FILETIME TimeStampUtc;
    LPCWSTR Reason;
    void *Reserved;
    } 	FABRIC_VALIDATION_FAILED_EVENT;

typedef struct FABRIC_TEST_ERROR_EVENT
    {
    FILETIME TimeStampUtc;
    LPCWSTR Reason;
    void *Reserved;
    } 	FABRIC_TEST_ERROR_EVENT;

typedef struct FABRIC_STOPPED_EVENT
    {
    FILETIME TimeStampUtc;
    LPCWSTR Reason;
    void *Reserved;
    } 	FABRIC_STOPPED_EVENT;

typedef struct FABRIC_CHAOS_EVENT_LIST
    {
    ULONG Count;
    /* [size_is] */ FABRIC_CHAOS_EVENT *Items;
    } 	FABRIC_CHAOS_EVENT_LIST;

typedef struct FABRIC_CHAOS_REPORT
    {
    FABRIC_CHAOS_PARAMETERS *ChaosParameters;
    FABRIC_CHAOS_STATUS Status;
    LPCWSTR ContinuationToken;
    const FABRIC_CHAOS_EVENT_LIST *History;
    void *Reserved;
    } 	FABRIC_CHAOS_REPORT;


#pragma pack(pop)

EXTERN_C const IID LIBID_FabricTypeLib;
#endif /* __FabricTypeLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


